setInterval& IE浏览器

时间:2012-11-26 13:47:39

标签: javascript jquery

我上下搜索并且还没有找到允许setInterval在任何版本的Internet Explorer中工作的东西。

以下是我现在使用的代码......

<script type="text/javascript">

$(document).ready(function () {
    $('#varRefresh').load('reload.php');

    window.setInterval("refreshVar();", 5000); //**** every 5 seconds
});

function refreshVar() {
    $('#varRefresh').load('reload.php');
}
</script>

<div id="varRefresh">
</div>

有人能指出我正确的方向,所以我可以让它在IE中工作吗?

5 个答案:

答案 0 :(得分:3)

您尝试加载的页面可能只是缓存。

您可以强制Internet Explorer不按如下方式缓存页面: Prevent caching of pages in Internet Explorer 8

或者,您可以简单地在URL中附加时间戳;因为该URL是IE新手,所以它将始终加载最新版本。

实施例

$(document).ready(function () {
    $('#varRefresh').load('reload.php?'+new Date().getTime());

    window.setInterval(refreshVar, 5000); //**** every 5 seconds
});

function refreshVar() {
    $('#varRefresh').load('reload.php?'+new Date().getTime());
}

答案 1 :(得分:1)

尝试替换此行:

window.setInterval("refreshVar();", 5000);   //**** every 5 seconds

用这个:

window.setInterval(refreshVar, 5000);   //**** every 5 seconds

(使第一个参数成为函数引用而不是字符串)

答案 2 :(得分:1)

Working Fiddle在Chrome,FireFox,Safari,Opera,Internet Explorer和Android浏览器上进行了测试。

<script type="text/javascript">

$(document).ready(function () {
    $('#varRefresh').load('reload.php');
    refreshVar();
});

function refreshVar() {
    var refresh = setInterval(function(){
    $('#varRefresh').load('reload.php');
    }, 5000);
}
</script>

<div id="varRefresh">
</div>

希望它有所帮助!

答案 3 :(得分:0)

不要将函数的名称作为字符串文字传递,而是尝试将函数作为参考传递,如下所示:

window.setInterval(refreshVar, 5000);

答案 4 :(得分:-1)

尝试使用setTimeout()代替。看看这个资源: http://www.w3schools.com/jsref/met_win_settimeout.asp

相关问题