Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.12.2011, 09:58
Аспирант
Отправить личное сообщение для Sergey_New Посмотреть профиль Найти все сообщения от Sergey_New
 
Регистрация: 21.07.2009
Сообщений: 71

Новое окно в Firefox
Создал страницу test.html и файл test.js

Код:
<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.
Где ошибка?
Ответить с цитированием
  #2 (permalink)  
Старый 11.12.2011, 16:13
Аспирант
Отправить личное сообщение для Sergey_New Посмотреть профиль Найти все сообщения от Sergey_New
 
Регистрация: 21.07.2009
Сообщений: 71

Ошибка:
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)) 
}

Цитата:
Надеюсь сэкономит чье-то время.
Только не могу разобраться, как этот код встроить в мой пример.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новое окно с определенными размерами Jonny Общие вопросы Javascript 2 21.02.2011 15:48
Открыть новое окно lor08 AJAX и COMET 7 19.09.2010 19:31
Передача данных из формы в новое окно Flyd Общие вопросы Javascript 0 01.08.2010 15:45
Как открыть новое окно? megaswin Общие вопросы Javascript 1 13.03.2010 20:13
Новое окно с рисунком Vilmos Элементы интерфейса 2 24.06.2009 23:59