windows.onload和setInterval仍然需要手动刷新才能工作

时间:2014-02-19 20:20:10

标签: javascript setinterval onload

阅读完这个主题的主题后,我仍然陷入困境。

由于某种原因,仅在手动重新加载页面时才会调用函数'raat'。如何让跨度自动刷新?

<span id="sn1"></span>
<script>
function raat() {
var sesh = <?php echo json_encode($_SESSION['customer_id']); ?>;
var vx = document.getElementById("sn1");
if ( sesh > 0) {
vx.innerHTML='<li><a href="J05.php" target="iframe_m">Edit Account Info</a></li>';
} else {
vx.innerHTML='';}
}; /* end raat */

window.onload=raat();    

setInterval( raat, 3000);
</script>

3 个答案:

答案 0 :(得分:2)

你正在调用raat并将其返回的内容分配给onload

window.onload=raat();  

需要

window.onload=raat;  

希望您意识到<?php echo json_encode($_SESSION['customer_id']); ?>;不会继续更新,因为它仅在呈现页面时添加,因此值将相同。如果要在更新时获取信息,则需要对服务器进行Ajax调用以获取数据。

答案 1 :(得分:1)

也许这也是(在另一个等待onload时将interval设置为关闭看起来很混乱

window.onload= function() { 

   raat();    

   setInterval( raat, 3000);

};

答案 2 :(得分:0)

您可以使用addEventListener修复它:

window.addEventListener("load", function(){
    raat();
});