0

ajax を使用して、Sharepoint 2010 検索 (パケット クエリ) に関する xml をダウンロードしています。ただし、問題は、jquery を使用して xml をトラバースしようとするときです。

$(document).ready(function() {
    String.prototype.endsWith = function(suffix) {
        return this.indexOf(suffix, this.length - suffix.length) !== -1;
    };

    var timeout = null;
    $('#SearchInputBox').on('keyup', function () {
        var text = $(this).val();
        if (timeout !== null) {
            clearTimeout(timeout);
        }
        timeout = setTimeout(function () {
            $('#LoadImage').show();
            DoSearch(text);
        }, 1000);
    });
});

function searchComplete(xData, status) {
    $('#LoadImage').hide();
    var search_results = $("#result");
    search_results.html('');

    $(xData.responseXML).find("QueryResult").each(function() {
        var err;
        try {
            var obj = $(this).eq(0);

            var text = obj.text(); // works in Firefox and Chrome but not IE9
            //var text = obj.text;
            //var text = obj.xml;

            var x = $("<xml>" + text + "</xml>");
            var docs = x.find("LinkUrl");
            var len = docs.length;
            var link;

            for(var i=0; i<len; i+=1) {
                link = $(docs[i]).text();
                if (link.toLowerCase().endsWith(".pdf")) {
                    search_results.append(link + "<br/>");
                }
            }
        } catch(err) {
            search_results.text("An error occured: " + err);
        }
    });
}

このコードでは、xml データを取得し、ブラウザーに表示しようとしています。これは firefox と chrome では機能しますが、IE9 では機能しません。IE9で動作させる必要があります。

.text()メソッドで失敗し、試し.html()てみるとそこでも失敗します。

.text() メソッドでブラウザ固有のことが起こっている可能性があるか、http://api.jquery.com/jQuery.parseXML/を使用して xml を解析する必要があると思います。

これを修正する方法を知っている人はいますか?

ありがとう。

4

2 に答える 2

0

すでに jQuery を使用しているのであれば、jQuery.ajax() を使用してリクエストを作成してみませんか? これはブラウザー間の不一致の多くを解決するのに役立ち、jQuery は応答タイプを「インテリジェントに推測」して自動的に解析します。オプションで指定することもできdataTypeます。

于 2013-06-10T19:52:49.253 に答える