首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

恨死了不兼容

2012-02-16 
恨死了不兼容 - Web 开发 / Ajax搞了一天,也没把下面的问题搞兼容,在IE下,setInterval ajax可用,在谷歌和F

恨死了不兼容 - Web 开发 / Ajax
搞了一天,也没把下面的问题搞兼容,在IE下,setInterval ajax可用,在谷歌和FF下都不起作用,用了无数方法,还是没有作用,不知道是我代码写得有误还是怎么的,知道的看一下

HTML code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="exam_now.aspx.cs" Inherits="Maj.WebSite.exam_now" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title>    <link href="skins/exampaper.css" rel="stylesheet" type="text/css" />    <script src="/include/js/jquery-1.7.1.min.js" type="text/javascript"></script>    <script src="/include/js/tab.js" type="text/javascript"></script>    <script src="/include/js/jquery.cookie.js" type="text/javascript"></script>    <script language="javascript" type="text/javascript">        var id = <%#cntId %>;        var tim=null;         var xmlHttpequest=null;         function finishExam()         {             clearInterval(tim);            var exam1 = "";            var exam2 = "";            var exam3 = "";            var result = "";            $(".paper1 .examvalue").each(function () {                var sign = $(this).attr("rel");                var tmp = "";                $("#ansower_" + sign + " input[type='radio']").each(function () {                    if ($(this).attr("checked")) tmp = $(this).val();  //if ($(this).attr("checked")) tmp += "-" + $(this).val();                });                exam1 += tmp + "|";            });            $(".paper2 .examvalue").each(function () {                var tmp = ""; // $(this).attr("rel") + "-";                $("#ansower_" + $(this).attr("rel") + " input[type='checkbox']").each(function () {                    if ($(this).attr("checked")) tmp += $(this).val() + ",";                });                tmp = tmp.substr(0, tmp.length - 1) + "|";                exam2 += tmp;            });            $(".paper3 textarea").each(function () {                exam3 += $(this).val() + "|";            });            result = exam1 + exam2 + exam3;            result = result.substr(0, result.length - 1);            $.get("/tools/check_exam.aspx", { cntid:<%#cntId %>, logid:<%#logId %>, data: result, r: Math.random() },                function(data)                {                   var txt=data.toString().split("|");                   p1.innerHTML=txt[0];                   p2.innerHTML=txt[1];                   p3.innerHTML=txt[2];                 });              //$.cookie("exam", exam1 + exam2);            AdLayer1.innerHTML="<strong>正在改您的卷子!</strong>";            AdLayer1.innerHTML="<strong>成功是从错题开始<br>请认真查看错题</strong><br><br><a href=\"exam_complete.aspx?id=" + <%#cntId %> + "&logid=" + <%#logId %> + "\">查看排名</a>";         }                /*        function ieajx ()        {            if(window.XMLHttpRequest)            {               xmlHttpequest=new XMLHttpRequest();            }            else if(window.ActiveXObject)            {               xmlHttpequest=new XMLHttpRequest("MSXML2.XMLHTTP");            }            if(xmlHttpequest)            {               xmlHttpequest.onreadystatechange=getTxt;               var sendtext="cntid="+<%#cntId %>+"&logid="+<%#logId %>+"&data="+result+"&r="+Math.random();               xmlHttpequest.open("POST","/tools/check_exam.aspx",true);               xmlHttpequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");                 xmlHttpequest.send(sendtext);            }        }        function getTxt ()        {               if(xmlHttpequest&&xmlHttpequest.readyState==4)               {                  if(xmlHttpequest.status==200)                  {                     AdLayer1.innerHTML="<strong>成功是从错题开始<br>请认真查看错题</strong><br><br><a href=\"exam_complete.aspx?id=" + <%#cntId %> + "&logid=" + <%#logId %> + "\">查看排名</a>";                     var data=xmlHttpequest.responseText;                     var txt=data.split("|");                     p1.innerHTML=txt[0];                     p2.innerHTML=txt[1];                     p3.innerHTML=txt[2];                                       }                }         }*/                var maxtime = <%#paperInfo.Minutes %> * 60 //一个小时,按秒计算,自己调整!        window.onload=function (){                                    tim=self.setInterval("CountDown()", 1000)                                   }         function CountDown()          {            if (maxtime >= 0)             {                var minutes = Math.floor(maxtime / 60);                var seconds = Math.floor(maxtime % 60);                var msg = "剩余" + minutes + "分";                if(seconds < 10)                {                   msg += "0";                }                 msg+= seconds + "秒";                 document.getElementById("timer").innerHTML=msg;                 if (maxtime == 5 * 60)                 {                   alert('注意,还有5分钟!');                 }                 --maxtime;             }            else             {                clearInterval(tim);                finishExam();            }                  }                      function document.oncontextmenu()        {            event.returnValue=false;        }        //屏蔽鼠标右键        function KeyDown()        {            if ((window.event.altKey) && ((window.event.keyCode == 37) || (window.event.keyCode == 39)))             {                event.returnValue = false;             }            if ((event.keyCode == 8) || (event.keyCode == 116))             {                 //屏蔽 F5刷新键                event.keyCode = 0;                event.returnValue = false;             }            if ((event.ctrlKey) && (event.keyCode == 78))             {                //屏蔽Ctrl+n                event.returnValue = false;            }            if ((event.shiftKey) && (event.keyCode == 121))             {                 //屏蔽shift+F10                event.returnValue = false;             }         }    </script></head><body onkeydown="KeyDown()" onbeforeunload="" oncontextmenu="event.returnValue=false">    <form id="form1" runat="server">    <div id="header">       <div class="left logo">         <img src="/images/kszx.gif" />       </div>       <div class="right userInfo">          欢迎您,<%#username %> 帐户余额:<%#oluserinfo.UserMoney %>E币 <a href="#">充值</a> <a href="#">收藏本站</a>       </div>    </div>    <div id="paper">        <div class="ksxx">考试时间:<%#paperInfo.Minutes %> 分钟     考生:<%#username %>    总分 :<%#paperInfo.Total %> 分</div>        <h2 class="kstit"><%#paperInfo.Title %></h2>        <div id="paperTab"><span id="paper1">单选题</span><span id="paper2">多选题</span><span id="paper3">问答题</span></div>        <div class="paperTabCnt">           <div class="paper1" id="p1">              <h2 class="ptit">一、单项选择题(共<%#iei.Count%>题,四个备选答案中,有一个最符合题意)</h2>              <%#exam1.ToString() %>           </div>           <div class="paper2" id="p2">              <h2 class="ptit">二、多项选择题(共<%#multi.Count%>题,五个备选答案中,有2-4个符合题意,少选,选对一个0.5分,选错得0分)</h2>              <%#exam2.ToString() %>           </div>           <div class="paper3" id="p3">              <h2 class="ptit">三、问答题(共<%#qa.Count %>题,不计分,提交后自行对照参考答案)</h2>              <%#exam3.ToString()%>           </div>        </div>        <script language="javascript" type="text/javascript">             setClickTab("#paperTab", ".paperTabCnt")        </script>    </div>    <div id="AdLayer1" class="Timer">        <strong>答题剩余时间</strong>        <div id="timer"><%#paperInfo.Minutes %></div>        <div><input type="button" onclick="finishExam()" value="交卷" /></div>    </div>    <script src="/include/js/float.js" type="text/javascript"></script>    </form></body></html> 



[解决办法]
window.event 是个问题。FF里不能用window.event,具体看相关资料,或找个FF里兼容的代码。或看看JQ里相应的方法。如果是从网上七拼八凑找来的代码放一起,就容易出现这个问题,因为有些代码并不是多浏览器兼容的。
[解决办法]
用jquery吧。我也对兼容性比较恼火
[解决办法]
看看jquery版本以及某些组件对象的获取。

热点排行