Почему всплывающее оповещение может повлиять на “DesignMode”?

StackOverflow https://stackoverflow.com/questions/741343

Вопрос

Я экспериментировал с созданием редактора страниц.Одна проблема в Firefox просто свела меня с ума.

Код страницы приведен ниже:

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

Это просто проверяет, уместно ли устанавливать "DesignMode" способом Mozilla или IE.Когда страница загружается, появляется надпись "Mozilla".;щелкните область iframe, и фокус будет сосредоточен на iframe, и я смогу вводить данные с клавиатуры.

Это выглядит нормально, но когда я комментирую строку “оповещение("mozilla");”, " это не работает."Режим проектирования" "Выключен", как показывает FireBug.

Это так застроено.Почему оповещение может повлиять на DOM и javascript?Кстати, мой Firefox - 3.0.6.

Это было полезно?

Решение

Потому что предупреждение дает iframe время для загрузки.Вы должны установить DesignMode в положение "вкл." только после загрузки документа iframe:

iframe.onload = function() {
    doc.designMode = "on";
};
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top