Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№113-12-2011 14:12:16

Sergey_New
Участник
 
Группа: Members
Зарегистрирован: 19-10-2011
Сообщений: 6
UA: IE 8.0

Новое окно в Firefox

Создал страницу test.html и файл test.js
test.html 

Выделить код

Код:

<html><head><title></title>
<script src="test.js" type="text/javascript"></script>
</head>
<body onload="NewWindow()"></body>
</html>

test.js

Выделить код

Код:

function NewWindow() {
    win = window.self;
    with (win.document) {
        open();
        write(setTemp());
        close();
    }
//    alert("!");
    return false;
    
}

function setTemp() {
    return '<html><head><title></title>'
           +'<script src="test.js" type="text/javascript"></sc'+'ript>'
           +'</head>'
           +'<body onload="writeList()">'
           +'<div id="List"></div>'
           +'</body></html>'
}

function writeList() {
    parent.document.getElementById("List").innerHTML="TEMP"
}

Работает в ИЕ, Опере.
Для отладки начал вставлять alert'ты.
Если раскоментировать alert в приведенном коде, срабатывает и в Firefox.
Возникает ошибка:
attempt to run compile-and-go script on a cleared scope
Нашёл решение подобной проблемы:

Убил час на решение бага. На русском тривиального решения не описано и в поиске ответа дошел до bugzilla.mozilla.org/show... .
Если нужен динамический script (подставьте свое) и есть обращение к нему,
а его нет ну по какой угодно причине, в 4ом firefox (4.0.1) скрипт упадет с выше приведенным error сообщением.
Дешево и сердито создать нужный элемент и воткнуть его в DOM (куда-нибудь где display = 'none' или просто в конец страницы) и после этого использовать. 
Надеюсь сэкономит чье-то время.

Выделить код

Код:

function() { with (document) { 
span = body.appendChild(createElement("SPAN")); //вот это может и лишнее 
span.style.display = 'none'; //но я решил поберечься 
var mys = createElement('SCRIPT');         
mys.language = "JavaScript"; 
span.appendChild(mys); 
//... и куча кода про то, что на самом деле делает script)) 
}

Помогите разобраться, как этот код использовать в моём примере.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]