|
|
|
| написал такую функцию:
function include(path, onloadFunc) {
var script = ce("SCRIPT");
script.type = "text/javascript";
script.src = path;
if(typeof onloadFunc == 'function') script.onload = onloadFunc;
document.getElementsByTagName("HEAD")[0].appendChild(script);
}
|
и никак не могу разобраться почему при вставке динамически скриптов на страницу, она перезагружается?..
Как этого избежать? | |
|
|
|
|
|
|
|
для: sl1p
(26.02.2010 в 01:54)
| | Во-первых, событие onload для тега <script> в браузере MSIE вообще не работает - http://xpoint.ru/forums/programming/javascript/crossbrowser/thread/28876.xhtml - это известный баг MSIE, который так и не пофиксили вплоть до 7 версии включительно (8-ю я покуда не смотрел по этому вопросу).
Во-вторых, при отсутствии текста скрипта в скриптовом блоке браузеры почему-то не прописывают закрывающий тег </script>. Соответственно, всё то, что идет у вас после "приживленного" незакрытого скрипта (а именно закрывающий тег </head>, тег <body> и т. д.) браузер воспринимает как JS-код (разумеется, ошибочный).
Для "лечения" надо хоть что-то внутрь блока перед его приживлением "засунуть".
Прописать, например, нейтральное: script.text = 'void (0);' - тогда браузер "прорисует" </script> | |
|
|
|
|
|
|
|
для: АЯ
(26.02.2010 в 11:31)
| | ну насчёт мсие не страшно, это для админки которая ориентирована только под ФФ)
а насчёт не закрытого тега... когда вызываю функцию при загрузке страницы, то всё нормально, проблема только когда уже потом по какомуто событию она вызывается.
за советы спасибо! | |
|
|
|