0

У меня есть то, что должно быть простой скрипт, следующим образом:Проблема с window.XMLHttpRequest в Internet Explorer (работает в Chrome)

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. Я совершенно новичок в этом, поэтому не знаю, как это сделать, отлаживая его, есть ли что-то очевидное, что может вызвать проблему между браузерами? Спасибо за любую помощь.

EDIT:

Я свел к нему на самом деле является OnClick, что вызывает проблемы, так я собираюсь исследовать, почему это не работает в IE ...

EDIT 2:

Оказывается, это выглядит как причуда IE10 - работает во всех других версиях, и с точки зрения совместимости, нет идеи, почему хотя

+0

Рассмотрите JQuery или другой API, который решает множество проблем с различным кодом для разных браузеров. – Jensd

ответ

0

Как вы помеченной свой вопрос с JQuery - я хотел бы предложить вам использовать более простой подход, а не сложную (позволяют управлять JQuery совместимость кросс-браузер)

function functionName(code){ 
    $.get("script.php?q="+code,function(result){ 
    if (result=="FAIL"){ 
     // Alert 
    } 
    else{ 
     // Alert 
    } 
    }); 
} 

Edit:

обновление вашей 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 
     } 
     }); 
    }); 
}); 
+0

Спасибо за помощь, но я заменил код выше, но пока он отлично работает в Chrome, он все еще ничего не делает в IE, когда я нажимаю кнопку. Это похоже на то, что вызов функции OnClick просто не работает - есть ли очевидная проблема совместимости с IE10? – Jialypen

+0

Обновите свой вопрос с помощью html-кода. –

+0

Вопрос обновлен – Jialypen

0

.open очищает любые ранее установленные onreadystatechange обработчик в IE. Ваш код должен выглядеть так:

var xmlhttp = ...; 
xmlhttp.open(...); 
xmlhttp.onreadystatechange = ...; 
xmlhttp.send(...); 
+0

Также обратите внимание, что больше не стоит поддерживать IE6 и более старых. Вы можете просто использовать 'var xmlhttp = new XMLHttpRequest()', и все будет хорошо. Если вы не в Китае. –

Смежные вопросы