JSONP を使用してリモート Web サイトの DOM を解析しようとしています。問題は、応答を受け取ったときに JSON ではないため、遅延オブジェクトが失敗することだと思いますが、そこで生データを取得してトラバースすることはできません。どういうわけかDOMノード?$(document).ready(function() {
$('#submitUrl').on('click', function() {
var words = {};
var url = $('#url').val();
//send a JSONP request since its the only cross domain method available
var options = {
dataType: "JSONP",
type: 'GET',
url: url,
};
var arr = new Array();
var countArr = new Array();
var jqxhr = $.ajax(options)
.done(function(data) {
//this will always fail since jquery expects valid json response, try parsing in always pipe
})
.fail(function() {
})
.always(function(data) {
var fileDom = $(data);
//grab each element under the body dom element
//probably a filter method would work faster
fileDom.find('body *').each(function(index, value) {
if ($(this).text())
{
var txt = $(this).text();
//is this in the array already
if ($.inArray(txt, arr)) {
//get current ocunt
var c = parseInt(countArr[txt]);
c++;
countArr[txt] = c;
}
else {
countArr[txt] = 1;
}
}
});
});
});
});
html
<label>Input URL</label>
<input type="text" name="url" id="url" value=""/>
<input type="submit" id="submitUrl">