Страницы: 1
Создал страницу 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)) }
Помогите разобраться, как этот код использовать в моём примере.
Отсутствует
Страницы: 1