Возможно, вопрос можно переформулировать: откуда мне знать, что мой скрипт загружен на html-страницу? Разместив скрипт внизу страницы, вы убедитесь, что все DOM-элементы доступны вашему скрипту. Когда вы хотите узнать, доступен ли ваш скрипт, вам следует проверить, доступна ли функция для запуска. Может быть, этот конструктор может помочь:
function Wait(what,action,id){
var _x = this,
rep = document.getElementById('report'),
cnt = 0,
timeout = 5,
interval = 100;
_x.id = id;
if (!(what instanceof Function)) {
return true; //or say something about it
}
function dowait() {
cnt += interval;
if (what())
{
clearInterval(_x.iv);
action();
return true;
}
if (cnt>(timeout*1000))
{
clearInterval(_x.iv);
//[do some timeout-action]
return true;
}
}
_x.iv = setInterval(dowait,interval);
}
Конструктор принимает функцию (возвращающую логическое значение) в качестве первого аргумента. Как
function(){return document.getElementById('someelement').innerHTML = '';}
Так что, если вы включите это перед вашим javascript, вы можете сделать что-то вроде:
var testfn =
function(){return document.getElementById('someElement').innerHTML = '';},
callback =
function(){alert('someElement is empty')},
dummy = null;
window.onload=function(dummy=new Wait(testfn,calllback);