Pourquoi une alerte pop-up peut affecter « designMode »?
-
09-09-2019 - |
Question
j'expreimenting de construire un éditeur de pages. Une question me rendait fou dans Firefox.
Le code page est ci-dessous:
<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>
Il suffit de vérifier si elle est approprate de mettre « designMode » de manière Mozilla ou IE façon. Lorsque la page se charge, un « Mozilla » apparaît; cliquez sur la zone iframe, et l'accent est mis sur l'iframe et je peux entrée avec le clavier.
Cela semble bien, mais quand je commente la ligne « alerte ( "mozilla"); », cela ne fonctionne pas. Le « designMode » est « Off » comme le montre la Firebug.
Il en est ainsi câblé. Pourquoi une alerte peut affecter les DOM et javascript? BTW, mon Firefox est 3.0.6.
La solution
Parce que l'alerte donne le temps iframe pour charger. Vous devez définir designMode « sur » seulement après que le document a iframe chargé:
iframe.onload = function() {
doc.designMode = "on";
};