0

私はyoutube APIとjavascriptを使用してプレーヤー領域を生成し、ユーザーがビデオをクリックしてスクロールしてプレーヤー領域で新しいビデオを再生できるようにする矢印を生成しました。これは、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()の代わりに呼び出しを使用してこれを行うことができ、 jQuery docsで説明されているようにパラメーター$.getJSON()を指定します。dataType: 'jsonp'

于 2013-03-06T18:20:51.347 に答える