Почему всплывающее оповещение может повлиять на “DesignMode”?
-
09-09-2019 - |
Вопрос
Я экспериментировал с созданием редактора страниц.Одна проблема в 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";
};