简体   繁体   English

将HTML <body> onLoad事件覆盖javascript窗口onload事件?

[英]will HTML <body> onLoad events overwrite javascript window onload event?

I have a HTML page and a javascript function is attached to the <body> onLoad event. 我有一个HTML页面,并且<body> onLoad事件附加了一个javascript函数。

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. 由于某些原因,我无法编辑附加到此onLoad事件的javascript函数。

So I created a new javascript file with a single function which will show the message dialog. 所以我用一个函数创建了一个新的javascript文件,它将显示消息对话框。 Then I added this line in my javascript file 然后我在我的javascript文件中添加了这一行

window.onload = onPageLoad; 

onPageLoad() is my function which could show the message dialog. onPageLoad()是我的函数,可以显示消息对话框。

I attached this javascript file in my HTML using script tag. 我使用脚本标记在我的HTML中附加了这个javascript文件。 When I run this HTML file, onPageLoad() function is not getting called. 当我运行此HTML文件时, onPageLoad()函数未被调用。

I want to know whether <body> tag, onLoad event overrides the window onload. 我想知道<body>标签,onLoad事件是否覆盖了窗口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. 请记住,我无法编辑我的HTML文件,我只能编写新的javascript文件。 Thanks. 谢谢。

Depends on browser. 取决于浏览器。 window.onload currently overwrites body onload in Chrome, Firefox and Safari on OSX window.onload目前在OSX上覆盖Chrome,Firefox和Safari中的body onload

You can ADD your function to the 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> 

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> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM