Em XUL, como eu sei que um navegador de tag tem carregamento acabado?
-
08-07-2019 - |
Pergunta
Estou desenvolvendo uma extensão do Firefox baseado em este tutorial que é uma extensão FF 2.0 (segunda parte do tutorial é em este url )
A principal coisa que é importante é que ele usa
<iframe id="contentview" src="http://www.ibm.com/developerworks/web" flex="2"/>
No código de backend, ao clicar no botão GO, isso acontece:
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;
Eu recebo um erro com o XPath, mas isso não é a minha pergunta. O problema que tenho com FF 3.0 é que o valor contentDocument refere-se ao antigo site carregado, não para aquele carregado pelo href-mudança.
Então, minha pergunta é: como posso criar uma janela semelhante, mas ser notificado alguém quando o documento carregado estiver concluída, para que eu possa acessar sua DOM
?Solução
Atualizado: primeiro você precisa para lidar com o evento de carregamento da janela, em seguida, você adicionar um ouvinte de eventos para o elemento 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);
}
substituir "DomLoadedEventHandler" com seu nome manipulador de eventos.
Eu recomendo que você dê uma olhada no site oficial da Mozilla para aprender tudo sobre as extensões do Firefox