window.onload 的替代方案

发布于 2024-11-19 16:48:01 字数 199 浏览 0 评论 0原文

是否有比 window.onload=function; 不同的选项在页面加载后调用函数。

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

还有其他选择吗?

Is there a different option than window.onload=function; or <body onload="function();"> to call a function after the page loads.

I have a script found on the net satisfies my needs, but it overrides window.onload, so this prevents me from using the native window.onload.

Are there any alternatives?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

攒眉千度 2024-11-26 16:48:02

我有同样的问题,但是当我删除括号时,该函数可以工作。

替换

window.onload = loadPage();

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

并且它可以工作。

I have the same problem, but when I remove brackets, the function works.

Replace

window.onload = loadPage();

with

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

and it works.

口干舌燥 2024-11-26 16:48:02

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

如果您的网上发现脚本 (FOTN) 创建了 onload,只需随后创建您自己的 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 在末尾定义。

Not an alternative, but a workaround, yes.

If your found-on-the-net script (FOTN) creates the onload, simply create your own onload afterwards, like so:

<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>

The prerequirement is that your onload is defined at the end.

哀由 2024-11-26 16:48:02

这会立即执行 function() 并将函数的返回值分配给 window.onload。这通常不是您想要的。 function() 必须返回一个函数才能使其有意义。

This executes function() straight away and assigns the function's return value to window.onload. This is usually not what you want. function() would have to return a function for this to make sense.

你列表最软的妹 2024-11-26 16:48:02

您可以有多个 onLoad 函数,因此这应该不是问题。

You can have multiple onLoad functions, so this should not be a problem.

娇俏 2024-11-26 16:48:01

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

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

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

Use addEventListener instead. Unfortunately it does not work in IE, but you can work around that by also implementing attachEvent.

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

window.attachEvent('onload', function (){
    alert('Function #1');
});
人生百味 2024-11-26 16:48:01

为了让您的生活变得轻松,请使用 JQuery 并使用 document.ready 函数来执行您想要在窗口中运行的逻辑。加载。

To make your life easy, grab JQuery and use the document.ready function to execute the logic you want to run in window.onload.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文