所以,我的问题比普通的JSONP要复杂一点,因为它根据返回值进行了几次JSON调用。
基本上,API会抓取一些帮助台文章,然后使用每篇文章中的数据生成一个CSS类,可以识别哪些文章有视频,向那些文章添加一个类,然后将它们全部显示为HTML列表。以下是我正在使用的脚本,它在Safari,Chrome和Firefox中有效,但在IE中却没有。我曾尝试搞乱xdr脚本,但还没有能够弄清楚如何使这个工作。有任何想法吗?任何帮助将不胜感激。这是我的代码:
var currentJson = '//helpdesk.url.com/api/v1/entries.json?callback=?';
items = [];
//the main jsonp function
$.ajax({
url: currentJson,
dataType: 'jsonp',
success:
function (data) {
data.sort(function(a,b) { return parseFloat(a.hits,5) + parseFloat(b.hits,5) } );
$.each(data, function (key, val) {
//define forum JSON of an article
var forumJson = '//helpdesk.url.com/api/v1/forums/' + val['forum_id'] + '.json?callback=?';
var postID = val['id']
var postLink = 'https://helpdesk.url.com/entries/' + val['id'] + '/';
//get the JSON data for the forum
$.ajax({
url: forumJson,
dataType: 'jsonp',
success:
function (data2) {
//get the Category ID
var theID = data2.category_id;
//log the ID (optional)
console.log(theID);
//if the category ID is the Videos category
if(theID == 20085107) {
//add class for video
var theClass = 'video';
}
//otherwise don't add a class
else { theClass = '' }
//push html to items variable
items.push('<li><a id=' + postID + '" href="' + postLink + '" class="' + theClass + '" >' + val['title'] + '</a></li>');
//merge each list item
$('#topfaqs').html(items.join(' '));
}
});
//return 5 results
});
}
});
我想做的就是让它在IE中运行。我在这里尝试了很多解决方案,但我必须在逻辑/流程中遗漏一些东西。您可以提供的任何信息和帮助将是一个巨大的帮助!
编辑: 以下是Internet Explorer在控制台中返回的错误
来自helpdesk.url.com/api/v1/entries.json的脚本被阻止了 哑剧类型不匹配