页面显示前加载Javascript警报

页面显示前加载Javascript警报,javascript,html,safari,Javascript,Html,Safari,在我的手机上,在safari中,如果我在body onload事件中转到默认页面,该页面上有alert(“Hello”),则会显示警报,并且我的默认页面在后台完全可见。如果我随后转到另一个网站,例如bbc.co.uk,然后在地址栏中键入默认页面的网址,则会在后台显示带有bbc内容的警报,就像在页面加载之前加载警报一样 如何仅在整个页面可见时显示消息。我已经阅读了窗口。onload在触发警报之前等待所有内容加载,但我一定是出了什么问题,因为行为没有改变。我也试过: $(document).read

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

如何仅在整个页面可见时显示消息。我已经阅读了
窗口。onload
在触发警报之前等待所有内容加载,但我一定是出了什么问题,因为行为没有改变。我也试过:

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


以防它与缓存有关,但我认为这不是问题所在。有什么想法吗


谢谢

如果您想使用window.onload或use window.onload来显示alrert框,则两者都没有使用的意义,下面的代码可以正常工作

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

 window.onload = function(){  alert('test'); } 
jQuery提供document.ready,它将这些文档抽象出来,并在页面的DOM准备好后立即激发

$(document).ready(function () {     
 alert('Test');  
});
检查以下人员的答案:

window.onload
是内置的Javascript事件,但由于它的实现在不同浏览器(FF/IE6/IE8/Opera)之间存在细微的差异,jQuery提供了document.ready,它将这些内容抽象出来,并在页面的DOM准备好后立即启动(不等待图像等)

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

  • document.ondomcontentready
    /
    document.ondomcontentloaded
    -加载文档的DOM时(可能在加载图像等前一段时间)触发的新事件;同样,IE和世界其他地方略有不同
  • 以及window.onload(即使在旧浏览器中也可以实现),它在整个页面加载(图像、样式等)时触发

将对函数的引用传递到
窗口。onload
而不是实际调用

试一试


函数show_popup(){
警报(“弹出显示”);
}

当然,即使两者都是不必要的,使用它们也不应该导致它运行得太早,是吗?
ready
事件发生在HTML文档加载之后,而不是整个页面呈现之后。。。看啊,另一张海报有答案。您的答案不起作用,因为您引用的代码将在分配给onload之前对其求值
alert('Test')
。您需要将一个函数传递给onload.+1,以实际解释用户代码不起作用的原因,而不仅仅是提供其他代码。在将警报分配给事件之前,它会对警报进行评估,这是一个看起来很微妙的错误,如果您不专门查找它,则很难发现它(因为人类观察者知道它的意思,并不考虑它实际上说了什么)。我尝试过这个方法,但警报仍然会在后台出现引用页面。您接受的答案并不能真正解决问题。警报仍然会在页面可见之前出现。引用页面在后台仍然可见。我不得不使用setTimeout函数和jquery window.load。我不知道为什么它不起作用,但这对我起了作用$就绪(函数(){setTimeout(函数(){alert(“Test”)},1000);});
$(document).ready(function () {     
 alert('Test');  
});
$(window).load(function() {
      alert('Test');
});
window.onload = function(){
 alert('test');
}