日期:2014-05-16  浏览次数:20410 次

如何让js在xhtml文档加载完毕之后再执行?
如何让js在xhtml文档加载完毕之后再执行?

head区有引用一个js文件,里面有个函数,一开始就执行

其中有句代码 是 document.getElementById("mydiv").innerHTML="我加载好了";

当然,如果这样会出错。因为还在head区,整个文档还未加载完毕。解决办法之一,是将这段js写在标签div的后面,这样就能获取到对象了。

可是我希望js就要写在js文件里,并且在head区调用。
我现在 希望通过js来判断 是否整个文档已经加载好了。 如加载好了,就能找到div对象了
那么就可以执行我定义的功能了。

怎么实现?
不要用window.onload,因为我这个页面window.onload的时候要执行很多函数。这样会覆盖前面的window.onload=函数

也不要引用jquery.js, 要自己写

------解决方案--------------------
不明白你的意思
因为我这个页面window.onload的时候要执行很多函数。这样会覆盖前面的window.onload=函数
window.onload是在文档加载完毕执行函数 即便不用这个 你还是在文档加载完毕执行 不一样吗?
完全不懂你的意思
------解决方案--------------------
你在body那里加一句话<body onload="你的函数名">这样试试呢
------解决方案--------------------
<html>
<body>

<script>
window.onload = function(){
alert('onload');
}

var load2 = function(){
alert('load2');
};

var load3 = function(){
alert('load3');
};

var EventUtil = {
//注册
addHandler: function(element, type, handler){
if (element.addEventListener){
element.addEventListener(type, handler, false);
} else if (element.attachEvent){
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
},
//移除注册
removeHandler: function(element, type, handler){
if (element.removeEventListener){
element.removeEventListener(type, handler, false);
} else if (element.detachEvent){
element.detachEvent("on" + type, handler);
} else {
element["on" + type] = null;
}
}
};
  

EventUtil.addHandler(window, 'load', load2);
EventUtil.addHandler(window, 'load', load3);


</script>
</body>
</html>

希望这个用例可以解决你的问题。
少年,想学好你的基础吧。推荐《javascirpt高级程序设计》
------解决方案--------------------
HTML code

<html>
<body>

<script>
window.onload = function(){
    alert('onload');
}

var load2 = function(){
    alert('load2');
};

var load3 = function(){
    alert('load3');
};

var EventUtil = {
   //注册
   addHandler: function(element, type, handler){
     if (element.addEventListener){
       element.addEventListener(type, handler, false);
     } else if (element.attachEvent){
       element.attachEvent("on" + type, handler);
     } else {
       element["on" + type] = handler;
     }
   },
   //移除注册
   removeHandler: function(element, type, handler){
     if (element.removeEventListener){
             element.removeEventListener(type, handler, false);
     } else if (element.detachEvent){
             element.detachEvent("on" + type, handler);
     } else {
             element["on" + type] = null;
     }
   }             
  };
  

EventUtil.addHandler(window, 'load', load2);  
EventUtil.addHandler(window, 'load', load3);  


</script>
</body>
</html>

------解决方案--------------------
不是onload,onload其实很很后面执行了。

楼主的情况,要用 DOMContentLoaded
JScript code

document.addEventListener("DOMContentLoaded", function(){alert('loaded');}, false);