窗口之间究竟有什么区别。Onload事件和body标签的Onload事件?我什么时候使用哪个,应该如何正确地做?
当前回答
把onload看作任何其他属性。例如,在输入框中,你可以输入:
<input id="test1" value="something"/>
或者你可以拨打:
document.getElementById('test1').value = "somethingelse";
onload属性的工作方式与此相同,只不过它接受一个函数作为值,而不是像value属性那样接受一个字符串。这也解释了为什么你只能使用其中的一个——调用窗口。Onload为body标签重新分配Onload属性的值。
另外,就像其他人说的那样,通常将样式和javascript与页面内容分开会更干净,这就是为什么大多数人建议使用window。onload或类似jQuery的ready函数。
其他回答
没有区别…
所以基本上你可以两者都用(一次一个!-)
但是为了可读性和html代码的整洁,我总是更喜欢窗口。onload !啊)
如果你试图编写不引人注目的JS代码(你应该),那么你不应该使用<body onload="">。
这是我的理解,不同的浏览器处理这两个略有不同,但他们的操作相似。在大多数浏览器中,如果同时定义了两者,其中一个将被忽略。
对一个客观问题给出这么多主观答案。“低调”JavaScript是迷信,就像永远不要使用gotos的旧规则一样。以一种能够帮助您可靠地实现目标的方式编写代码,而不是按照某人流行的宗教信仰编写代码。
任何发现:
<body onload="body_onload();">
过分分散注意力是过分自命不凡的,而且没有明确自己的优先事项。
我通常把JavaScript代码放在一个单独的.js文件中,但我发现在HTML中挂钩事件处理程序并不麻烦,顺便说一下,这是有效的HTML。
两者没有区别,但两者都不能用。
在许多浏览器中,窗口。Onload事件不会触发,直到所有图像都已加载,这不是你想要的。基于标准的浏览器有一个名为DOMContentLoaded的事件,该事件较早触发,但IE不支持(在撰写本文时)。我建议使用支持跨浏览器DOMContentLoaded特性的javascript库,或者找到一个编写良好的函数。jQuery的$(document).ready()就是一个很好的例子。
将内容、布局和行为分开是一个公认的标准。因此window.onload()将比<body onload="">更适合使用,尽管两者都做同样的工作。
推荐文章
- (深度)使用jQuery复制数组
- 你从哪里包含jQuery库?谷歌JSAPI吗?CDN吗?
- 在setInterval中使用React状态钩子时状态不更新
- 使用JavaScript显示/隐藏'div'
- 使用JavaScript获取所选的选项文本
- AngularJS模板中的三元运算符
- 让d3.js可视化布局反应灵敏的最好方法是什么?
- 原型的目的是什么?
- 检查jquery是否使用Javascript加载
- 将camelCaseText转换为标题大小写文本
- 如何在JavaScript客户端截屏网站/谷歌怎么做的?(无需存取硬盘)
- 如何在JavaScript中遍历表行和单元格?
- jQuery map vs. each
- 自定义异常类型
- 窗口。Onload vs <body Onload =""/>