2009-02-21 4 views
1

Я пытаюсь использовать встроенный webkit в AIR, чтобы написать небольшой браузер с HTML + Javascript.Как получить доступ к iframe в приложении Adobe AIR?

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

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

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

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

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

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

J.

ответ

1

Чтобы получить доступ к содержимому фрейма

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

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

be если пользователь щелкнул в кадре

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

Вы хотите читать this :)

+0

Dirk, Спасибо (еще раз) за вашу помощь. Я попробую. Как я полагаю, первая строка находится в ActionScript. Означает ли это, что мне нужно загрузить мой iframe с помощью ActionScript? Есть ли способ получить эти данные на моем Javascript? – 2009-02-21 18:37:00

+0

Двусторонняя связь между AS и JS очень возможна. Я предполагаю, что вы используете HTMLLoader для загрузки страницы. – dirkgently

2

Так Жюльен кажется, что он будет судиться со мной, я отвечу;)

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

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

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

0

Dirk,

Что я могу обойтись без вас;) Вы работаете в Adobe или что-то?

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

Так я двигаюсь на ...

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

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

+0

Отметьте свой ответ как принято: D Рад помочь вам. Звучит весело, что вы собираетесь делать! Мне было очень весело обманывать себя с AS и JS (и я одинаково неудобен в обоих из них). – dirkgently