7

在我的手机上,在 safari 中如果我转到具有alert("Hello")body onload 事件的默认页面,则会显示警报,并且我的默认页面在后台完全可见。如果我然后转到另一个站点,例如 bbc.co.uk,然后在地址栏中输入我的默认页面的网址,则警报会在后台显示 BBC 内容,就像在页面之前加载警报一样已加载。

一旦整个页面可见,我如何只显示消息。我读过它window.onload会等到所有内容都加载后才会触发警报,但我一定是出了点问题,因为行为没有改变。我也试过:

$(document).ready(function () {
    window.onload= alert('Test');
});

<meta http-equiv="Pragma" content="no-cache"/>

以防它与缓存有关,但我认为这不是问题。有任何想法吗 ?

谢谢

4

4 回答 4

10

您将对函数的引用传递给window.onload而不是实际调用。

尝试

window.onload = function(){
 alert('test');
}
于 2012-09-05T11:41:42.870 回答
3

如果您要显示警报框,请使用 window.onload 两者都没有意义,这里的代码可以正常工作

window.onload(即使在旧浏览器中也实现),当整个页面加载时触发

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

jQuery 提供 document.ready,它将这些抽象出来,并在页面的 DOM 准备好时立即触发

$(document).ready(function () {     
 alert('Test');  
});

检查答案:window.onload vs $(document).ready()

window.onload是内置的 Javascript 事件,但由于它的实现在浏览器(FF/IE6/IE8/Opera)之间存在微妙的怪癖,jQuery 提供了 document.ready,它将这些抽象出来,并在页面的 DOM 准备好后立即触发(doesn '不要等待图像等)。

document.ready是一个 jQuery 函数,包装并提供以下事件的一致性:

  • document.ondomcontentready/ document.ondomcontentloaded- 加载文档的 DOM 时触发的新事件(可能在加载图像等之前的一段时间);再次,在 IE 和世界其他地方略有不同
  • 和 window.onload (即使在旧浏览器中也可以实现),它会在整个页面加载(图像、样式等)时触发
于 2012-09-05T11:40:49.247 回答
2
$(window).load(function() {
      alert('Test');
});
于 2012-09-05T11:41:32.370 回答
-2

<!DOCTYPE html>
<html>
<body onload="show_popup()">

<script>
function show_popup() {
    alert("Popup shows");
}
</script>

</body>
</html>

于 2017-09-28T17:51:47.143 回答