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.

Était-ce utile?

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";
};
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top