2015-04-02 77 views
1

在此代码我看不到我的警告框,当我运行这段代码
我不能看到警告框,同时执行此代码

setInterval(function() { 
    location.reload(true); 
    $(document).ready(function(){ 
     alert($("h2").text()) 
    }) 
}, 6000) 

6秒后重新加载页面,但我没有看到我的警报box.I想知道为什么,假设标签h2包含文本...谢谢

+0

你重新加载页面,这意味着你杀了页面上的所有脚本。这意味着doc.ready已被销毁,永远不会执行。 – 2015-04-02 14:48:00

+1

对于那些D4V1D标签,我感到很抱歉,但是你没有帮助我。这是一个错误,人类会犯错误!谢谢@Marc B,你解释得很好;我刚刚成功了。 – franckstifler 2015-04-02 15:03:52

回答

1

只要它执行location.reload(true),页面就会重新加载,而脚本的其余部分将永远不会执行。如果你想在页面加载后报警(即第一负载和每重装后)

$(document).ready(function() { 
    setInterval(function() { 
     alert($("h2").text()); 
     location.reload(true); 
    }, 6000); 
}); 

annoying demo #2),这样做:

如果你想重新加载页面(annoying demo #1)前的警告,这样做这个:

$(document).ready(function() { 
    alert($("h2").text()); 
    setInterval(function() { 
     location.reload(true); 
    }, 6000); 
}); 
+0

感谢您的代码,@Benjamin,它完美地工作 – franckstifler 2015-04-02 15:04:25

+2

不客气。如果解决了问题,请接受答案。 “ – 2015-04-02 15:05:01

-1

你的事件已经发生在它被执行之前。应该使用这样的事情,而不是...

setInterval(function(){ 
 
    (function(){ 
 
    alert($("h2").text()); 
 
    location.reload(true);  
 
    })(); 
 
}, 6000);

+0

”你的事件在执行之前就已经发生了“,这是相当混乱的。我期望这就是为什么你会陷入低谷。 – 2015-04-02 15:07:22

+0

正确的 - 我应该说的是文档上的准备事件会在第一次间隔之前被解雇。 – 2015-04-02 15:17:52

+1

好吧,这也有点令人困惑,因为在他的代码示例中,ready事件根本不会被解雇,因为所有的处理都会在reload()函数调用中停止。它不仅不会被解雇,它永远不会被首先定义(因为定义它的行永远不会被执行)。 – 2015-04-02 15:23:46

相关问题