浏览器独立的onload事件解决方法 - 有意义吗?

时间:2010-02-18 21:35:08

标签: javascript-events

我最近发现自己正在玩事件,因为没有标准的事件表明页面已被加载(如onload与pageshow),我想知道是否有些事情反对简单地放一些javascript结尾这页纸。然后在加载页面时执行此代码。

在这个例子中,我将一个keyUp监听器添加到iText标识的(input)元素,并将其分配给函数updateText(event)(事件对象将被传递给该函数)。

<html><head></head><body>
<!-- content -->
<script type="text/javascript">
    document.getElementById('iText').onkeyup = updateText;
</script>
</body>
</html>

此处的示例页面: http://kb.granjow.net/JavaScript/onload.html
在Firefox 3.5,Opera 10.10,IE 6,IE 8中测试,无处不在。

那么,这是好事还是我错过了什么?

期待您的回答。 西蒙

2 个答案:

答案 0 :(得分:2)

听起来不错。只要您的脚本位于页面末尾,就没有理由不这样做。事实上,ASP.NET使用此方法来加载它的脚本。

答案 1 :(得分:2)

这适用于基本页面。但是,如果您的脚本处理的图像尚未完成下载或来自ajax请求,则可能会遇到麻烦。如果你是手写的东西,这样的东西应该有效:

function registerEvent(el, event, func, bCapture)
{
    if (el.attachEvent)
        el.attachEvent('on'+event, func);
    else if (el.addEventListener)
        el.addEventListener(event, func, bCapture);

}

否则,各种JS库都有自己的实现,比如jQuery的$(document).ready()。