Jquery写法:
$(document).ready(function(){
alert("hello");
});
原生javascript写法:<body onload="alert('hello');">
请注意:上面两段代码不是等价的。
<body onload="alert('hello');">这里的alert('hello');要等到页面全部加载完毕才执行,注意是全部加载,包括dom,图片等其它资源。
$(document).ready(function(){
alert("hello");
});
当dom加载完就可以执行了。
onload的使用方法很多,我们最常用到的是在页面全部加载完成后执行一些函数方法,如在body标签中加入onload,或者window.inload=function(){},除此之外,onload还可以写到HTML的标签中来执行一些方法。
如果想判断页面中的img标签是否加载完成,可以在img标签的前后加上脚本,例如
<div id="loading"></div>
<script type="text/javascript">
var msg = document.getElementById("imga");
if (msg == null) {
document.getElementById("loading").innerHTML = "正在生成图片控件...";//此处使用setTimeout函数不管用
}
</script>
<img src="../jqueryui/themes/base/images/ui-icons.png" alt="" id="imga" />
<script> document.getElementById("loading").innerHTML = ""; </script>
注意此时的img标签前后的js代码,上面的js代码先获取img对象,然后判断该对象是否为空,如果是空的话说明没有加载完成,那么提示用户“正在生成图片控件”,加载完成后将提示信息隐藏。
上面的方法适用于所有控件或标签,但是对于本身就具有onload事件的控件或标签(该事件在对应的控件或标签加载完成后触发),我们完全可以把img后面的代码封装成一个函数供onload调用,如下
<script>
var msg = document.getElementById("imga");
if (msg == null) {
document.getElementById("loading").innerHTML = "正在图片控件...";//此处使用setTimeout函数不管用
}
function loadedImg() {
document.getElementById("loading").innerHTML = "";
}
</script>
<div id="loading"></div>
<img src="../jqueryui/themes/base/images/ui-icons.png" alt="" id="imga" onload="loadedImg();"/>
从上面的代码可以看出,img标签后面的代码已经封装成loadedimg方法被img的onload调用。
支持onload事件的标签:<body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>