Frage

Ich war expreimenting einen Seiteneditor zu bauen. Ein Problem, trieb mich nur verrückt in Firefox.

Die Seite Code ist unter:

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

Es ist einfach zu prüfen, ob es approprate ist „designmode“ in Mozilla Art und Weise oder IE Weise einzustellen. Wenn die Seite geladen wird, ein „Mozilla“ erscheint; klicken Sie auf den iframe-Bereich, und der Schwerpunkt liegt auf der iframe und ich kann Eingabe über die Tastatur.

Das sieht gut aus, aber wenn ich die Zeile aus kommentieren „alert ( "mozilla"); “, es funktioniert nicht. Der „designmode“ auf „Off“, wie Firebug zeigt.

Das ist so verdrahtet. Warum kann eine Warnung, um den DOM und Javascript beeinflussen? BTW, mein Firefox 3.0.6.

War es hilfreich?

Lösung

Da der Alarm der iframe Zeit zum Laden gibt. Sie sollten designmode auf „on“ nur dann eingestellt, nachdem das iframe Dokument geladen ist:

iframe.onload = function() {
    doc.designMode = "on";
};
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top