我正在尝试使用JSONP解析远程网站的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">
答案 0 :(得分:1)
你做不到。
为了能够使用jsonp
- 远程端应该以特殊格式给出响应(包含在回调函数中)。
因此,根据定义,将jsonp
与任意网页结合使用是不可能的。