将 HTMLonLoad 事件会覆盖 javascript 窗口 onload 事件吗?

发布于 2024-10-20 11:09:17 字数 552 浏览 3 评论 0原文

我有一个 HTML 页面,并且一个 javascript 函数附加到 onLoad 事件。

我想在页面加载时显示一个消息对话框。由于某些原因,我无法编辑附加到此 onLoad 事件的 javascript 函数。

因此,我创建了一个新的 javascript 文件,其中包含一个函数,该函数将显示消息对话框。然后我在我的 javascript 文件中添加了这一行

window.onload = onPageLoad; 

onPageLoad() 是我的函数,可以显示消息对话框。

我使用 script 标记在 HTML 中附加了这个 javascript 文件。当我运行这个 HTML 文件时,onPageLoad() 函数没有被调用。

我想知道标签,onLoad事件是否覆盖了窗口onload。如果是这样,有人可以帮助我以某种方式实现此功能。

请记住,我无法编辑 HTML 文件,并且只能编写新的 javascript 文件。谢谢。

I have a HTML page and a javascript function is attached to the <body> onLoad event.

I wanted to show up a message dialog when the page loads. I cannot edit the javascript function attached to this onLoad event due to some reasons.

So I created a new javascript file with a single function which will show the message dialog. Then I added this line in my javascript file

window.onload = onPageLoad; 

onPageLoad() is my function which could show the message dialog.

I attached this javascript file in my HTML using script tag. When I run this HTML file, onPageLoad() function is not getting called.

I want to know whether <body> tag, onLoad event overrides the window onload. If so, can someone help me in implementing this functionality somehow.

Please keep in mind that I could not edit my HTML file and I could write only new javascript file. Thanks.

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

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

发布评论

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

评论(1

北方的韩爷 2024-10-27 11:09:17

取决于浏览器。 window.onload 目前会覆盖 OSX 上 Chrome、Firefox 和 Safari 中的 body onload

您可以将函数添加到 onload 中:

window.onload = function() {
  alert('window.onload')
}

if (window.addEventListener) {
  window.addEventListener('load', function() {
    alert('addEventListener')
  }, false);
} else if (window.attachEvent) { // IE < 9
  window.attachEvent('onload', function() {
    alert('attachEvent')
  });
}
<body onload="alert('body onload')">

</body>

和/或替换

var bodyOnload = document.body.onload;
window.onload = function() {
  alert('window.onload')
  bodyOnload()
}

if (window.addEventListener) {
  window.addEventListener('load', function() {
    alert('addEventListener')
  }, false);
} else if (window.attachEvent) { // IE < 9
  window.attachEvent('onload', function() {
    alert('attachEvent')
  });
}
<body onload="alert('body onload')">

</body>

Depends on browser. window.onload currently overwrites body onload in Chrome, Firefox and Safari on OSX

You can ADD your function to the onload:

window.onload = function() {
  alert('window.onload')
}

if (window.addEventListener) {
  window.addEventListener('load', function() {
    alert('addEventListener')
  }, false);
} else if (window.attachEvent) { // IE < 9
  window.attachEvent('onload', function() {
    alert('attachEvent')
  });
}
<body onload="alert('body onload')">

</body>

AND/OR Replace

var bodyOnload = document.body.onload;
window.onload = function() {
  alert('window.onload')
  bodyOnload()
}

if (window.addEventListener) {
  window.addEventListener('load', function() {
    alert('addEventListener')
  }, false);
} else if (window.attachEvent) { // IE < 9
  window.attachEvent('onload', function() {
    alert('attachEvent')
  });
}
<body onload="alert('body onload')">

</body>

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