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

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№101-03-2007 14:30:27

hasherfrog
Участник
 
Группа: Members
Зарегистрирован: 17-06-2005
Сообщений: 60
UA: Firefox 2.0

Что-то неуловимо изменилось (2.0.0.1 -> 2.0.0.2) :[

У меня был букмарклет (и не один, что ужасно), который добавлял к содержимому документа некие скрипты и тут же их вызывал. Раньше (до 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();
}
)()

Сейчас происходит такая неприятность: при вызове добавленного скрипта оказывается, что его ещё нет.
Что случилось? Что изменили? И как теперь быть?

Отредактировано hasherfrog (01-03-2007 14:31:23)

Отсутствует

 

№201-03-2007 14:56:01

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 2.0
Веб-сайт

Re: Что-то неуловимо изменилось (2.0.0.1 -> 2.0.0.2) :[

делать задержку перед запуском.

Выделить код

Код:

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);
}
)()

Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№301-03-2007 15:47:37

hasherfrog
Участник
 
Группа: Members
Зарегистрирован: 17-06-2005
Сообщений: 60
UA: Firefox 2.0

Re: Что-то неуловимо изменилось (2.0.0.1 -> 2.0.0.2) :[

Спасибо. Работает. Честно говоря, я сам бы сообразил, если бы так не запаниковал. Именно таким же образом (через setTimeout) я уже разруливал похожие проблемы (с greasemonkey, ЕМНИП). Дурацкая моя ошибка сейчас была в том, что я в запарке стал писать setTimeout(somefunction(),500); вместо setTimeout("somefunction()",500); - и как результат... :] А-а-а... небо падает! :-)

Спасибо.

Отсутствует

 

№403-03-2007 18:35:56

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 2.0
Веб-сайт

Re: Что-то неуловимо изменилось (2.0.0.1 -> 2.0.0.2) :[

Похоже, это баг 371720

Отредактировано Lynn (03-03-2007 18:38:01)


Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№511-03-2007 02:11:48

kanicq
Участник
 
Группа: Members
Зарегистрирован: 11-03-2007
Сообщений: 1
UA: Firefox 1.5

Re: Что-то неуловимо изменилось (2.0.0.1 -> 2.0.0.2) :[

Такая же проблема возникла у меня, когда я пытался послать запрос через XMLHttpRequest в начале загрузки страницы. Долго бился, думал что ошибка в скрипте.
Спасает только workaround в виде setTimeout().

Отсутствует

 

Board footer

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