¿Por qué una alerta emergente puede afectar “designMode”?
-
09-09-2019 - |
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.
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";
};