>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Что-то неуловимо изменилось (2.0.0.1 -> 2.0.0.2) :[ http://forum.mozilla-russia.org/viewtopic.php?id=15812 |
hasherfrog > 01-03-2007 14:30:27 |
У меня был букмарклет (и не один, что ужасно), который добавлял к содержимому документа некие скрипты и тут же их вызывал. Раньше (до 2.0.0.2) всё прекрасно работало. Теперь - не работает. Идея такая. Запускаясь, букмарклет дописывает к <head> некий фрагмент. Потом его вызывает: Выделить код Код:javascript: (function(){ function addscript(){ var js=document.createElement("script"); js.setAttribute("language","JavaScript"); js.setAttribute("type","text/javascript"); js.text="function someactions(){alert('hello');}"; document.getElementsByTagName('head').item(0).appendChild(js); } function runscript(){ someactions(); } addscript(); runscript(); } )() Сейчас происходит такая неприятность: при вызове добавленного скрипта оказывается, что его ещё нет. |
Lynn > 01-03-2007 14:56:01 |
делать задержку перед запуском. Выделить код Код:javascript: (function(){ var js=document.createElement("script"); js.setAttribute("language","JavaScript"); js.setAttribute("type","text/javascript"); js.text="function someactions(){alert('hello');}"; document.getElementsByTagName('head').item(0).appendChild(js); setTimeout("someactions()", 0); } )() |
hasherfrog > 01-03-2007 15:47:37 |
Спасибо. Работает. Честно говоря, я сам бы сообразил, если бы так не запаниковал. Именно таким же образом (через setTimeout) я уже разруливал похожие проблемы (с greasemonkey, ЕМНИП). Дурацкая моя ошибка сейчас была в том, что я в запарке стал писать setTimeout(somefunction(),500); вместо setTimeout("somefunction()",500); - и как результат... :] А-а-а... небо падает! :-) Спасибо. |
Lynn > 03-03-2007 18:35:56 |
Похоже, это баг 371720 |
kanicq > 11-03-2007 02:11:48 |
Такая же проблема возникла у меня, когда я пытался послать запрос через XMLHttpRequest в начале загрузки страницы. Долго бился, думал что ошибка в скрипте. |