Ajaxの要であるXMLhttpRequestはもともとMicrosoftがActiveXオブジェクトとして実装したものなんですが、これにならって他のブラウザは組み込みオブジェクトとして実装されました。
IE5とIE6ではActiveXが禁止されている場合では使用できないんですが、IE7になってようやくブラウザ組み込みとして再実装されました。
実際に使う場合IE6とそれ以外のブラウザでは作法がかなり違います。(IE5は試してないのでここでは例外とします)
if(typeof window.XMLHttpRequest == "undefined"){
if(typeof window.ActiveXObject == "function"){
try {
new ActiveXObject("Msxml2.XMLHTTP");
window.XMLHttpRequest = function(){
return new ActiveXObject("Msxml2.XMLHTTP");
}
}
catch (e) {
try {
new ActiveXObject("Microsoft.XMLHTTP");
window.XMLHttpRequest = function(){
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
catch (e) {
}
}
}
}
Ajax = new window.XMLHttpRequest();これで一応IE6でもそれ以外でも動作するXMLhttpRequestのインスタンスが作れるんですが、絶妙に不便な違いがあります。
ランキング支援お願いします!
