• 締切済み

以下のスクリプトがVista×IE8、Firefox(現時点でわかって

以下のスクリプトがVista×IE8、Firefox(現時点でわかっているところで)で、 想定と異なった動作をしてしまいます。 XP上であれば、特に問題なく動くのですが、Win7は手元にないので、わかりません。 しかし、原因が一向にわからず・・・。 ご教授いただけますと幸いです。 var xhr; function prefCheck(){   ~省略~ xhr = false; if(window.ActiveXObject) { try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } } else if(window.XMLHttpRequest) { xhr = new XMLHttpRequest(); xhr.overrideMimeType('text/xml'); } xhr.onreadystatechange=PrefCheck; xhr.open("GET","hogehoge.php, true); xhr.send(null); } function PrefCheck(){ if ((xhr.readyState == 4) && (xhr.status == 200)){ window.alert("hogehogehogehogehogehoge"); } }

みんなの回答

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

もはや、あんまり古いIEまで救ってやる必要は無いような気がするんですが、 一応  var xhr;  if(XMLHttpRequest)   xhr = new XMLHttpRequest(); //IE7,IE8,IE9,Firefox,Chrome,Safari  else if (window.ActiveXObject){  try{xhr = new ActiveXObject("Msxml2.XMLHTTP");} //IE6(Win2000以降)   catch(e){xhr = new ActiveXObject("Microsoft.XMLHTTP");} //もっと古いやつ  }else xhr = null;