0

我一直在使用 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");

非常感谢任何帮助,因为我很困惑!

4

1 回答 1

0

Internet Explorer 仅在版本 10 中开始支持标准CORS。如果您使用的是旧版本的 Internet Explorer,则无法使用XMLHttpRequest(该$.getJSON()调用正在执行的操作)直接请求不同域上的资源。

相反,您需要使用JSON-P 之类的方法,该方法也适用于其他浏览器。您可以通过使用$.ajax()调用而不是来执行此操作$.getJSON(),并指定dataType: 'jsonp'参数,如jQuery 文档中所述。

于 2013-03-06T18:20:51.347 回答