我有几个需要在页面加载以获取内容时运行的JavaScript函数。我试图使用window.onload来调用该函数,但它没有奏效。当页面加载时运行javascript函数
基本上,页面加载完成后需要运行几个函数,但只能运行一次。
我有这到目前为止,但它没有工作
<script language="javascript">
window.onload=serverstats
window.onload=latestnews
</script>
我有几个需要在页面加载以获取内容时运行的JavaScript函数。我试图使用window.onload来调用该函数,但它没有奏效。当页面加载时运行javascript函数
基本上,页面加载完成后需要运行几个函数,但只能运行一次。
我有这到目前为止,但它没有工作
<script language="javascript">
window.onload=serverstats
window.onload=latestnews
</script>
这是你的主要问题:
window.onload=serverstats #sets window.onload to serverstats
window.onload=latestnews #sets window.onload to latestnews and removes the reference to serverstats
您可以通过执行解决这个问题:
oldOnload = window.onload;
window.onload=function() {
oldOnload();
serverstats();
latestnews();
};
然而,因为问题是用JQuery标记的,所以我会推荐使用它并执行:
$(document).ready(function() {
serverstats();
latestnews();
});
直接使用'onload'在某些环境下可能会非常糟糕,这些环境可能会首先设置onload或假定为独占所有者... – 2011-09-04 22:01:45
我已编辑我的代码以反映此情况。 – Gazler
谢谢。完美地工作。 – Mythrillic
您正在覆盖onload
值。编写一个调用它们的函数。
window.onload = function() {
serverstats();
latestnews();
};
这是打破与许多其他库(和/或SharePoint ...)集成的一种方法。然而,它不值得-1所以.. – 2011-09-04 21:59:57
@pst:是的,其他解决方案更好。如果你想加入,请发送一个给德鲁:他发布了非jQuery解决方案,这总是很好的知道。 –
如果您已经使用jQuery我将提供另一种选择:
$(function() {
serverstats();
latestnews();
});
这仅仅是例子,简单的事情怎么可以用合适的工具。
您也可以通过下面的代码同时处理:
window.addEventListener("load", serverstats);
window.addEventListener("load", latestnews);
这并不在IE8和更早,虽然,这使用方法:
window.attachEvent("onload", serverstats);
window.attachEvent("onload", latestnews);
这就是为什么存在[先进的事件处理程序模型(http://www.quirksmode.org/js/events_advanced.html)。 –