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

?
Foi útil?

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

http://developer.mozilla.com

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top