XMLHttpRequestオブジェクトを作成するための最良の方法は何ですか?
対応するすべてのブラウザで動作するはずです。
XMLHttpRequestオブジェクトを作成するための最良の方法は何ですか?
対応するすべてのブラウザで動作するはずです。
ライブラリのないソリューションの場合、Prototypeの使用をTry.these
かなり簡単にエミュレートできます。
function newAjax() {
try { return new XMLHttpRequest(); } catch(){}
try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch(){}
try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(){}
try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(){}
try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(){}
return false;
}
ここに便利なリンクといくつかのコードがあります(すべてのベースをカバーする必要があります)
var request = null;
function InitAJAX()
{
var objxml = null;
var ProgID = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Microsoft.XMLHTTP"];
try
{
objxml = new XMLHttpRequest();
}
catch(e)
{
for (var i = 0; i < ProgID.length; i++)
{
try
{
objxml = new ActiveXObject(ProgID[i]);
}
catch(e)
{
continue;
}
}
}
return objxml;
}
request = InitAJAX();
jQuery (または同様の JavaScript ライブラリ)を使用します。Ajax 呼び出しの作成など、ブラウザー間の互換性の問題を処理します。
たとえば、jQuery Ajax 呼び出しを使用すると、次のようになります。
$.ajax({
url: 'document.xml',
type: 'GET',
dataType: 'xml',
timeout: 1000,
error: function(){
alert('Error loading XML document');
},
success: function(xml){
// do something with xml
}
});
これは私が使用しているものです、それは私にとってはうまくいきます:
function request()
{
try
{
try
{
return new ActiveXObject("Microsoft.XMLHTTP")
}
catch( e )
{
return new ActiveXObject("Msxml2.XMLHTTP")
}
}
catch(e)
{
return new XMLHttpRequest()
}
}
XMLHttpRequest.js - 標準準拠のクロスブラウザー XMLHttpRequest オブジェクト実装を使用し、標準 (W3C)の方法でオブジェクトを操作します。
私はCletusのjQueryの提案に賛成し、 jQuery Formプラグインもチェックします。これは非常に強力で使いやすく、フォームをAjax経由ですばやく機能するように変換できます。
関数 CreateXmlHttpObj() {
try {
XmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
XmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (oc) {
XmlHttpObj = null;
}
}
// if unable to create using IE specific code then try creating for Mozilla (FireFox)
if (!XmlHttpObj && typeof XMLHttpRequest != "undefined") {
XmlHttpObj = new XMLHttpRequest();
}
}