У меня есть небольшой скрипт, запущенный на "google.com/*" с помощью Greasemonkey
в основном мой скрипт добавляет несколько пунктов меню в меню Google (где вы можете найти изображения видео карты новости покупки и т. д.);
это меню внутри qbar div, поэтому оно выглядит так:
<div id="gbar"> ...menu code ... </div>
следующая строка в моем скрипте работает нормально, если вы переходите на веб-страницу Google (www.google.com):
var gbar = var gbar = document.getElementById("gbar");
if (qbar != null) alert("qbar exist!");
else alert("qbar is null");
этот код предупреждает о существовании qbar, и это хорошо.
Теперь, если я найду любое слово в Google, например, поиск по запросу "безумец" приведет вас на эту страницу:
http://www.google.com/#sclient=psy&hl=en&q=madman&aq=f&aqi=g5&aql=&oq=&pbx=1&fp=fd0f73886609171d
теперь скрипт все еще работает, только теперь он предупреждает "gbar is null"
Я думаю, причина в том, что скрипт работает до того, как элемент gbar будет создан на странице. что странно, потому что я был уверен, что сценарий обезжиренной смазки запускается только после завершения загрузки всего контента.