【发布时间】:2010-11-04 21:16:15
【问题描述】:
我的 AJAX 遇到了这个问题,它在 IE 中不起作用,但在 FF 中起作用。我从 w3schools 网站上获得了以下大部分代码,所以我不明白为什么会出错。谁能帮我吗?
<script type="text/javascript">
function checkRefresh(str)
{
if (str=="") {
document.getElementById("lastCallID").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
if (document.getElementById("lastCallID").innerHTML < xmlhttp.responseText) {
GoPopUp();
} else {
setTimeout('checkRefresh()',15000)
}
}
}
xmlhttp.open("GET","getnewid.php",true);
xmlhttp.send();
}
</script>
谢谢!
编辑:据我所知,它在 IE6 -8 中不起作用。基本上这个想法是,ajax 调用一个脚本,该脚本运行一个 php 页面,该页面获取数据库中的最新 ID。然后它将来自 php 页面的 ID 与主页上的 ID 进行比较。如果来自 Ajax 请求的 ID 大于页面上的 ID,则它会启动一个函数,该函数启动一个 jquery 弹出窗口以提醒用户有一个新的数据库条目,并为他们提供刷新选项。在 IE 6,7,8 中,弹出窗口永远不会启动,所以我只能想象 ajax 无法正常工作以获取新 ID。刷新功能在我调用它时起作用,这就是为什么我认为问题出在 ajax 上。但如果你好奇,这里是 GoPopUp 函数
var GoPopUp = function(){
$('#PopNewCall').fadeIn('slow');
PageRefreshTimer();
}
//Function which refreshes page after a certain number of seconds with no user Inputs
var PageRefreshTimer = function(){
setTimeout("location.reload(true);",30000); //1,000 = 1 second
}
//Function which refreshes page after user has clicked refresh
var RefreshNow = function(){
setTimeout("location.reload(true);",0);
}
【问题讨论】:
-
它到底在做什么/不做什么?无论如何你可以详细说明细节......
-
如果 IE 不能在哪个版本中运行?
-
"I got a majority of the following code off the w3schools website, so I don't see why it would be wrong"- 人们应该认真地 promotejs.com 而不是蹩脚的 w3schools -
提供一个关于代码失败的模糊概念对您很有用。
-
据我所知,它在 IE6 -8 中不起作用。基本上这个想法是,ajax 调用一个脚本,该脚本运行一个 php 页面,该页面获取数据库中的最新 ID。然后它将来自 php 页面的 ID 与主页上的 ID 进行比较。如果来自 Ajax 请求的 ID 大于页面上的 ID,那么它会启动一个函数来刷新页面。在 IE 6,7,8 中它不会刷新页面,所以我只能想象 ajax 无法正常工作以获取新 ID。刷新功能在我调用它时起作用,这就是为什么我认为问题出在 ajax
标签: javascript ajax internet-explorer xmlhttprequest