我上下搜索并且还没有找到允许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中工作吗?
答案 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