window.onload的替代品

时间:2011-07-13 21:44:57

标签: javascript html onload

在页面加载后调用函数是否有不同于window.onload=function;<body onload="function();">的选项。

我在网上找到的脚本满足了我的需求,但它覆盖了window.onload,因此这阻止了我使用原生window.onload

还有其他选择吗?

7 个答案:

答案 0 :(得分:2)

我有同样的问题,但是当我删除括号时,该功能可以正常工作。

替换

window.onload = loadPage();

window.onload = loadPage;
function loadPage() {
if (document.getElementById("testElement").value)
    alert('whew');
}

它有效。

答案 1 :(得分:1)

请改用addEventListener。不幸的是它在IE中不起作用,但你也可以通过实现attachEvent来解决这个问题。

window.addEventListener('load', function (){
    alert('Function #1');
});

window.attachEvent('onload', function (){
    alert('Function #1');
});

答案 2 :(得分:1)

不是替代方案,而是一种解决方法,是的。

如果你在网上找到的脚本(FOTN)创建了onload,那么就这样创建你自己的<html> <body> <script type="text/javascript"> window.onload = function(){ console.log("FOTN"); } </script> <script type="text/javascript"> var a = window.onload; window.onload = function(){ console.log("Handling before FOTN"); a(); console.log("Handling after FOTN"); } </script> </body> </html> ,如下所示:

onload

要求是在最后定义{{1}}。

答案 3 :(得分:0)

你可以有多个onLoad函数,所以这应该不是问题。

答案 4 :(得分:0)

这将立即执行function()并将函数的返回值分配给window.onload。这通常不是您想要的。 function()必须为此返回一个函数。

答案 5 :(得分:-1)

为了让您的生活轻松,请抓住JQuery并使用document.ready函数执行您想要在window.onload中运行的逻辑。

答案 6 :(得分:-1)

这是一个不能替代的工作。

添加

<head>
<script 
 src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
 </script>
</head>

使用

$(document).ready(function(){
    //some code here
 });