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 を解析する必要があると思います。
これを修正する方法を知っている人はいますか?
ありがとう。