Por um alerta pop-up pode afetar “designMode”?
-
09-09-2019 - |
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.
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";
};