Pregunta

Me expreimenting para construir un editor de páginas. Una cuestión simplemente me volvió loca en Firefox.

El código de la página es el siguiente:

<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>

Se acaba de comprobar si se trata de establecer approprate "designMode" en Mozilla manera o de manera IE. Cuando se carga la página, un "Mozilla" aparece; haga clic en el área de marco flotante, y la atención se centra en el iframe y yo puede introducir con el teclado.

Esto se ve bien, pero cuando me comente la línea “alert ( "Mozilla"); ”, que no funciona. El "designMode" es "No" como muestra FireBug.

Esto es así por cable. ¿Por qué una alerta puede afectar el DOM y JavaScript? Por cierto, mi Firefox es 3.0.6.

¿Fue útil?

Solución

Debido a la alerta da el tiempo iframe para cargar. Debe establecer designMode en "on" sólo después de que el documento se ha cargado iframe:

iframe.onload = function() {
    doc.designMode = "on";
};
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top