我一直在使用youtube api和javascript来生成一个播放器区域,然后是允许用户点击并滚动视频以在播放器区域播放新视频的箭头。这在除ie以外的所有其他浏览器中都可以正常工作,在ie7,8和9中似乎可以正常工作,但只在某些操作系统上。例如,在windows 8中使用模拟器似乎没问题。任何帮助吗?
JSfiddle: http://jsfiddle.net/9bBCG/(由于某些原因,这里不工作,认为json提要可能不工作-但代码确实工作)
这是我检索提要的位置:
var playListURL = 'http://gdata.youtube.com/feeds/api/users/BadbyMicroMovies/uploads?v=2&alt=json';
var videoURL= 'http://www.youtube.com/watch?v=';
$.getJSON(playListURL, function(data) {
var list_data="";
$.each(data.feed.entry, function(i, item) {
var feedTitle = item.title.$t;
var feedURL = item.link[1].href;
var fragments = feedURL.split("/");
var videoID = fragments[fragments.length - 2];
var url = videoURL + videoID;
var thumb = "http://img.youtube.com/vi/"+ videoID +"/default.jpg";
list_data += '<li><a class="vid-link" href="'+ url +'?rel=0" title="'+ feedTitle +'"><img alt="'+ feedTitle+'" src="'+ thumb +'"</a></li>';
});
$(list_data).appendTo("#youtube-feed");
任何帮助都是非常感激的,因为我很困惑!
Internet Explorer 10版本才开始支持标准CORS。如果你使用的是旧版本的Internet Explorer,你不能直接使用XMLHttpRequest
请求不同域的资源(这就是$.getJSON()
调用所做的)。
相反,您需要使用类似JSON-P的方法,它也可以在其他浏览器上工作。您可以通过使用$.ajax()
调用而不是$.getJSON()
来实现这一点,并指定dataType: 'jsonp'
参数,正如jQuery文档中解释的那样。