В XUL как узнать, что тег браузера закончил загрузку? - PullRequest
0 голосов
/ 07 мая 2009

Я разрабатываю расширение для Firefox на основе этого учебного пособия , которое является расширением FF 2.0 (вторая часть учебного руководства находится на этом URL )

Главное, что он использует

<iframe id="contentview" src="http://www.ibm.com/developerworks/web" flex="2"/>

В коде бэкэнда при нажатии кнопки GO это происходит:

contentview.contentDocument.location.href = urlbox.value;

//Use Firefox XPath to get the raw text of the document
var doctext = contentview.contentDocument.evaluate(
    "string(.)", document, null, XPathResult.STRING_TYPE, null).stringValue;

Я получаю сообщение об ошибке с xpath, но это не мой вопрос. Проблема, с которой я столкнулся в FF 3.0, заключается в том, что значение contentDocument относится к старому загруженному сайту, а не к тому, который был загружен href-change.

Итак, мой вопрос: как я могу создать подобное окно, но уведомить кого-нибудь, когда загруженный документ будет завершен, чтобы я мог получить доступ к его DOM?

1 Ответ

2 голосов
/ 07 мая 2009

Обновлен: сначала вам нужно обработать событие загрузки окна, затем вы добавляете прослушиватель событий в элемент iframe

window.addEventListener("load",Listen,false);
function Listen()
{
  var frame = document.getElementById("contentview");
  frame.addEventListener("DOMContentLoaded", DomLoadedEventHandler, true);          
}

    function DomLoadedEventHandler() {
    var frame = document.getElementById("contentview");
    alert(frame.contentDocument.location.href);
    }

замените "DomLoadedEventHandler" на имя вашего обработчика событий.

Я рекомендую вам взглянуть на официальный сайт Mozilla, чтобы узнать все о расширениях Firefox

http://developer.mozilla.com

...