我应该是一个简单的脚本,如下所示:
function functionName(code){
var xmlhttp;
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)
{
var result=xmlhttp.responseText;
if (result=="FAIL")
{
// Alert
}
else
{
// Alert
}
}
}
xmlhttp.open("GET","script.php?q="+code,true);
xmlhttp.send();
}
我在页面上有一个按钮,其中有一个调用该函数的onclick命令:
<form action="">
<table><tr><td><input type="text" name="code" id="code" size="4"></td><td><a onclick="functionName(code.value)"><img src="images/button.png" /></a></td></tr></table><br />
从表单输入发送代码,如果script.php返回“FAIL”则给出一个响应,而在所有其他情况下发出另一个警报(它做的不止于此,但是取出了所有其他内容并使用警报进行故障排除)。代码在Chrome中运行良好,但不在Internet Explorer中运行。我对此很新,所以我不确定如何调试它,是否有任何明显的问题会导致浏览器之间出现问题?谢谢你的帮助。
编辑:
我已将其缩小到它实际上是导致问题的onclick所以我将研究为什么这在IE中不起作用...
编辑2:
原来它看起来像IE10怪癖 - 适用于所有其他版本,并且在兼容性视图中,虽然没有想法
答案 0 :(得分:0)
当您使用jquery标记问题时 - 我建议您使用更简单的方法而不是复杂方法(让jquery管理跨浏览器兼容性)
function functionName(code){
$.get("script.php?q="+code,function(result){
if (result=="FAIL"){
// Alert
}
else{
// Alert
}
});
}
修改:
更新您的a
<a href='#' id='getCode'>
<强>脚本:强>
$(document).ready(function(){
$('#getCode').on('click',function(){
var code = $('#code').val();
$.get("script.php?q="+code,function(result){
if (result=="FAIL"){
// Alert
}
else{
// Alert
}
});
});
});
答案 1 :(得分:0)
.open
清除IE中之前设置的任何onreadystatechange
处理程序。您的代码应如下所示:
var xmlhttp = ...;
xmlhttp.open(...);
xmlhttp.onreadystatechange = ...;
xmlhttp.send(...);