0

この例を実装しようとしていますが、「$。getScript」を使用しています。何らかの理由で機能しません。

これは私のコードです:

function youtubeFeedCallback(data) {
    var s = '';
    s += '<img src="' + data.entry.media$group.media$thumbnail[0].url + '" width="' + data.entry.media$group.media$thumbnail[0].width + '" height="' + data.entry.media$group.media$thumbnail[0].height + '" alt="' + data.entry.media$group.media$thumbnail[0].yt$name + '" align="right"/>';
    s += '<b>Title:</b> ' + data.entry.title.$t + '<br/>';
    s += '<b>Author:</b> ' + data.entry.author[0].name.$t + '<br/>';
    s += '<b>Published:</b> ' + new Date(data.entry.published.$t).toLocaleDateString() + '<br/>';
    s += '<b>Duration:</b> ' + Math.floor(data.entry.media$group.yt$duration.seconds / 60) + ':' + (data.entry.media$group.yt$duration.seconds % 60) + ' (' + data.entry.media$group.yt$duration.seconds + ' seconds)<br/>';
    if (data.entry.gd$rating) {
        s += '<b>Rating:</b> ' + data.entry.gd$rating.average.toFixed(1) + ' out of ' + data.entry.gd$rating.max + ' (' + data.entry.gd$rating.numRaters + ' ratings)<br/>';
    }
    s += '<b>Statistics:</b> ' + data.entry.yt$statistics.favoriteCount + ' favorite(s); ' + data.entry.yt$statistics.viewCount + ' view(s)<br/>';
    s += '<br/>' + data.entry.media$group.media$description.$t.replace(/\n/g, '<br/>') + '<br/>';
    s += '<br/><a href="' + data.entry.media$group.media$player.url + '" target="_blank">Watch on YouTube</a>';
    document.write(s);
}



$(document).ready(function () {
    $.getScript('http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&alt=json-in-script&callback=youtubeFeedCallback', function () {
        alert(1); //This function is placed in jsPlugin.js

    });

});

アラートはうまくいきます。アラートを受け取ります。FireBugではGETメソッドが表示されますが、「コールバック」関数が実行されません。自分のサイトに貼り付けているのがわかりません。

なぜ?!`

4

3 に答える 3

2

これはjsonpです。

試す:

$.getJSON('http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&alt=json-in-script&callback=?', youtubeFeedCallback);

作業デモ。

于 2012-09-13T06:29:06.060 に答える
0

を使用し.getJSON()ます。詳細については、 http://api.jquery.com/jQuery.getJSON/を参照し、JSONPを探してください。

于 2012-09-13T06:27:14.720 に答える
0

フェッチされたJavaScriptにエラーがある場合、正しくコールバックされません。

ドキュメント(https://api.jquery.com/jQuery.getScript/)で、2番目のパラメーターのコールバック関数は「成功」と呼ばれることに注意してください。

jQuery 1.5以降、エラーを説明するために.fail()を使用できます。

$.getScript("path/to/script.js", function() {
    console.log("Script loaded and no errors");
}).fail(function( jqxhr, settings, exception ) {
    console.log("Script loaded but error occurred:");
    console.log(exception);
});
于 2018-08-15T04:29:37.837 に答える