Как получить доступ к iframe в приложении Adobe AIR? - PullRequest
1 голос
/ 21 февраля 2009

Я пытаюсь использовать встроенный веб-набор в AIR для написания небольшого браузера с HTML + Javascript.

Я отображаю страницу по URL-адресу, введенному пользователем в iframe.

Оттуда я бы хотел:

  1. доступ к содержимому фрейма, например, для отображения страницы на вкладке.
  2. получать оповещения, когда пользователь щелкает в рамке, например, для обновления строки URL.

Для 1) я знаю, что это запрещено в браузере для безопасности. Тем не менее, я бы предположил, что это должно быть возможно в приложении AIR », например, запросив у пользователя разрешение (как в Gecko в Firefox).

Кто-нибудь знает, как это сделать 1)? Есть ли событие или что-то сделать 2)?

Спасибо за вашу помощь,

J.

Ответы [ 3 ]

2 голосов
/ 23 февраля 2009

Поскольку Жюльен звучит так, будто он подаст на меня в суд, я отвечу;)

Итак, вы не используете Flex Builder? Если да, справа от вас появятся маленькие красные точки. Flex Builder временами капризен, и это помогает закрыть и снова открыть решение. А в крайних случаях сама IDE и перезагружает проект. Кстати: вы создали приложение для настольного компьютера (AIR)? HTMLLoader доступен только для AIR .

Если вы не используете Flex Builder IDE, я предлагаю вам перейти по этой ссылке . Рекомендуется Adobe ( здесь ).

Ваш код компилируется абсолютно нормально с моей стороны. Однако меня смущает то, что вы пытаетесь достичь с помощью ExternalInterface.

1 голос
/ 21 февраля 2009

Для доступа к содержимому фрейма

Если у вас есть идентификатор ifrm для iframe:

var html:HTMLLoader = new HTMLLoader();
// ... 
// in the `complete` event handler
trace(html.window.document.getElementById("ifrm").innerHTML); // content

быть предупрежденным, когда пользователь щелкнет в рамке

Если у вас может быть обработчик событий javascript для отслеживания изменений в вашем подэлементе iframe, вы можете вызвать функцию / обработчик событий AS.

Вам захочется прочитать это :)

0 голосов
/ 23 февраля 2009

Дирк,

Что я могу сделать без тебя;) Ты работаешь на Adobe или на что-то еще?

У меня нет (пока) FB, просто использую простой базовый компилятор mxmlc. Я не знал, что HTMLLoader работал только для AIR !! ;) Использование a mxmlc скомпилировало его плавно ...

Так что я продолжаю ...

Кстати, внешний интерфейс должен загружать страницы в моем фрейме из моего "основного" javascript (я лучше владею JS, чем AS3, поэтому хочу минимизировать AS3).

Теперь я добавлю другой способ: иметь возможность вызывать функцию в моем главном JS из функции в AS3, обрабатывать событие «COMPLETE» на HTMLLoader и передавать в JS строку HTML, которую я хочу читать с помощью jQuery.

...