我有一个HTML页面,并且<body>
onLoad事件附加了一个javascript函数。
我想在页面加载时显示一个消息对话框。由于某些原因,我无法编辑附加到此onLoad事件的javascript函数。
所以我用一个函数创建了一个新的javascript文件,它将显示消息对话框。然后我在我的javascript文件中添加了这一行
window.onload = onPageLoad;
onPageLoad()
是我的功能,可以显示消息对话框。
我使用脚本标记将此javascript文件附加到我的HTML中。当我运行此HTML文件时,onPageLoad()
函数未被调用。
我想知道<body>
标记,onLoad事件是否覆盖了窗口onload。如果是这样,有人可以帮助我以某种方式实现此功能。
请记住,我无法编辑我的HTML文件,我只能编写新的javascript文件。谢谢。
答案 0 :(得分:3)
取决于浏览器。 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>