Pergunta

Eu estava expreimenting para construir um editor de páginas. Uma questão apenas me deixou louco no Firefox.

O código da página está abaixo:

<body>
<iframe WIDTH=200 HEIGHT=200 id="myEditor"></iframe>
<script>

    function getIFrameDocument(sID){
        // if contentDocument exists, W3C compliant (Mozilla)
        if (document.getElementById(sID).contentDocument){
            alert("mozilla"); // comment out this line and it doesn't work
            return document.getElementById(sID).contentDocument;
        } else {
            // IE
            alert("IE");
            //return document.getElementById(sID);
            return document.frames[sID].document;
        }
    }

    getIFrameDocument("myEditor").designMode = "On";

</script>

</body>

É apenas verificar se é approprate ao conjunto "designMode" em Mozilla forma ou IE caminho. Quando a página é carregada, um "Mozilla" aparece; clique na área de iframe, eo foco está no iframe e eu puder de entrada com teclado.

Este parece bem, mas quando eu comente a linha “alert ( "mozilla"); ”, ele não funciona. O "designMode" é "Off" como mostra o Firebug.

Este é tão ligado. Por que um alerta pode afetar o DOM e JavaScript? BTW, meu Firefox é 3.0.6.

Foi útil?

Solução

Porque o alerta dá o tempo iframe para carga. Você deve definir designMode para "on" somente depois que o documento iframe foi carregado:

iframe.onload = function() {
    doc.designMode = "on";
};
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top