Domanda

Sono stato expreimenting di costruire un editor di pagine. Un problema solo mi faceva impazzire in Firefox.

Il codice della pagina è qui sotto:

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

E 'solo controllare se è approprate impostare "designMode" in modo Mozilla o modo di IE. Quando la pagina viene caricata, un "Mozilla" si apre; fare clic sull'area iframe, e l'attenzione è rivolta l'iframe e mi può inserire con la tastiera.

Questo sembra bene, ma quando ho commentare la riga “alert ( "mozilla"); ”, doesnt lavoro. Il "designMode" è "Off", come spettacoli Firebug.

Questo è così cablata. Perchè un avviso può influenzare il DOM e JavaScript? A proposito, il mio Firefox è 3.0.6.

È stato utile?

Soluzione

Dato che l'avviso dà il tempo iframe per caricare. È necessario impostare designMode su "on" solo dopo che il documento è stato caricato iframe:

iframe.onload = function() {
    doc.designMode = "on";
};
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top