0

DOMDocument を作成する必要があるブラウザに依存しない Jscript コードを作成する最良の方法は何ですか?
私はこのコードを持っています (私の質問への @MartinHonnen の回答から抽出したものです XSLT Javascript 拡張関数をノードセットに戻すにはどうすればよいですか? ):

function tokenize (input) {
    var doc = new ActiveXObject('Msxml2.DOMDocument.6.0');
    ...
    }

これは、MSXML 6.0 XSLT プロセッサ (Jscript が xslt シートに埋め込まれていることに注意してください) および IE9 (不思議なことに、毎回ではありませんが、デバッグ モードへのステップはここでは少し役立つようです) で正常に動作しましたが、そうではありませんでした。適切に動作させるためにクラスを変更する必要があった IE8 に適しMsxml2.DOMDocument.3.0ています。どうやら IE8 Jscript は MSXML 3.0 をサポートしていますが、それ以降のバージョンはサポートしていません。

だから今、私はDOMDocumentを利用するブラウザの種類とブラウザのバージョンに依存しないコードを探しています。
誰が私にこれを提供できますか? そこに最適な解決策が見つかるかもしれないので、タグとして
追加しました。 副次的な質問: どの DOM クラスがどのブラウザーの種類とバージョンでサポートされているかの概要はどこで確認できますか?Jquery

4

1 に答える 1

1

CreateXmlHttpReqさまざまな種類の Microsoft の ActiveXObjects を処理するために関数を微調整する必要があります

function CreateXmlHttpReq(handler) {
    var xmlhttp = null;

    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        var types = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Microsoft.XMLHTTP"];

        for (var i = 0; i < types.length; i++) {
            try {
                xmlhttp = new ActiveXObject(types[i]);
                break;
            } catch(e) {}
        }
    }

    if (xmlhttp) {
         xmlhttp.onreadystatechange = handler;
    }

    return xmlhttp;
}

参考: https ://stackoverflow.com/a/10389829/1237812

于 2012-04-30T20:12:58.680 に答える