Man*_*anu 222 javascript
window.onload事件与标签onload事件之间究竟有什么区别body?我何时使用哪个以及如何正确使用?
Ric*_*ner 214
window.onload = myOnloadFunc并且<body onload="myOnloadFunc();">是使用相同事件的不同方式.window.onload虽然使用不那么突兀 - 它会将你的JavaScript从HTML中删除.
所有常见的JavaScript库,Prototype,ExtJS,Dojo,JQuery,YUI等都为文档加载时发生的事件提供了很好的包装.您可以侦听窗口onLoad事件,并对此作出反应,但是在下载所有资源之前不会触发onLoad,因此在获取最后一个巨大的图像之前不会执行事件处理程序.在某些情况下,这正是您想要的,在其他情况下,您可能会发现在DOM准备好时进行监听更合适 - 此事件类似于onLoad,但无需等待图像等即可下载.
jca*_*ll1 32
没有区别,但你不应该使用它们.
在许多浏览器中,window.onload直到所有图像都加载后才会触发事件,这不是您想要的.基于标准的浏览器有一个事件被称为DOMContentLoaded更早发生的事件,但IE不支持它(在撰写本答案时).我建议使用支持跨浏览器DOMContentLoaded功能的javascript库,或者找到一个可以使用的编写良好的函数.jQuery $(document).ready()是一个很好的例子.
小智 20
window.onload可以没有身体工作.创建仅包含脚本标记的页面,并在浏览器中打开它.该页面不包含任何正文,但它仍然有效..
<script>
function testSp()
{
alert("hit");
}
window.onload=testSp;
</script>
Run Code Online (Sandbox Code Playgroud)
Mar*_*iek 10
一般来说,我更喜欢不使用<body onload="">事件.我认为尽可能地将行为与内容分开是更清晰的.
也就是说,有时候(对我来说通常很少见)使用body onload可以提高速度.
我喜欢使用Prototype所以我通常会在<head我的页面中添加这样的内容:
document.observe("dom:loaded", function(){
alert('The DOM is loaded!');
});
Run Code Online (Sandbox Code Playgroud)
要么
Event.observe(window, 'load', function(){
alert('Window onload');
});
Run Code Online (Sandbox Code Playgroud)
以上是我在这里学到的技巧.我非常喜欢在HTML之外附加事件处理程序的概念.
(编辑以纠正代码中的拼写错误.)
小智 6
'对客观问题的这么多主观答案."不引人注目"的JavaScript迷信就像从未使用过旧规则一样.以有助于您可靠地实现目标的方式编写代码,而不是根据某人的时髦宗教信仰.
找到的人:
<body onload="body_onload();">
Run Code Online (Sandbox Code Playgroud)
过分分散注意力是过于自命不凡,并没有优先考虑.
我通常将我的JavaScript代码放在一个单独的.js文件中,但我发现在HTML中挂钩事件处理程序并不麻烦,顺便说一句,HTML是有效的HTML.
小智 5
window.onload- 在所有 DOM、JS 文件、图像、Iframe、扩展和其他文件完全加载后调用。这等于$(window).load(function() {});
<body onload="">- DOM 加载后调用。这等于$(document).ready(function() {});
| 归档时间: |
|
| 查看次数: |
426951 次 |
| 最近记录: |