dom events - 如何在页面加载完成时从 HTML 文档正文调用 JavaScript 函数
dom events - How to call JavaScript function from body of HTML document on pageload-complete
我有一些JavaScript(如果你有兴趣,可以初始化谷歌地图的代码),我被迫包含在html文档的<body></body>
标签中,我想让我的方法之一在页面加载完成时触发。问题是我无法访问 <body>
html 标签,所以我不能这样做:
<body onload="foo()">
有什么办法可以做到这一点吗?我意识到这是一个荒谬的场景。
根据代码的运行时间,使用 JavaScript 附加处理程序:
if(window.onload) {
var _existing = window.onload;
window.onload = function() {
_existing();
foo();
};
}
else {
window.onload = foo;
}
由于您似乎无法控制页面,因此我们必须更加小心。其他 JavaScript 可能已经设置了事件处理程序。为了成为一个好公民,我们不只是覆盖事件处理程序,而是保留对它的引用,以防它存在。
但是,其他JavaScript代码可能会再次覆盖它。
最好的方法是使用更高级的事件处理方法addEventListener
(W3C) 和 attachEvent
(IE)。
事件处理的更多信息,我建议阅读有关 quirksmode.org 的优秀文章。
如果你使用的是jQuery,你可以使用$(document).ready
:
$(document).ready(function() {
// put all your jQuery goodness in here.
});
请参阅本教程。
window.onload = foo;
function foo(){
alert("page loaded!");
}
您可以使用 DOM 以编程方式附加事件。
// Function to add event listener to body
function addLoadFn()
{
var body = document.getElementById("body");
body.addEventListener("load", myOnloadListener, false);
}
相关文章:
- 从Javascript和Php变量创建Html模板文档
- 有没有一种方法可以在没有文档或jQuery的情况下使用javascript解码html实体
- HTML文档中脚本标记的位置-<头部>&<身体>有不同的行为
- 如何从多个不同的html页面获得mongodb文档的用户输入
- 暂停文档-HTML、CSS、JavaScript
- 如何用javascript重写html文档
- 是否可以使用有角度的HTML文档进行$编译
- 从现有html自动生成html源文档
- 枚举附加到文档的HTML对象的所有事件
- 如何确保通过电子邮件发送的html文档中的Google Drive链接不会被识别为附件
- 将jQuery.js文件附加到html文档中
- 谷歌文档如何拦截Ctrl-S/Command-S来保存文档而不是html页面
- 为任意html文档创建不引人注目的覆盖
- 在HTML文档中使用XML文件中的数据
- 删除“;NaN”;来自HTML文档
- <!文档html>在JS脚本中触发“use strict”
- 在Google Apps Script中获取javascript“文档HTML DOM”信息
- 在使用 Chrome 扩展程序加载之前,使用 document_start 修改文档 html
- 在html中嵌入文档(html/pdf/swf/…)的统一方法
- 文档Html,它是真正的文档在javascript