【问题标题】:youtube search results works for orderby=viewCount but not orderby=publishedyoutube 搜索结果适用于 orderby=viewCount 但不适用于 orderby=published
【发布时间】:2013-07-10 23:32:14
【问题描述】:

下面有一个脚本,如果我使用orderby=published,它就不起作用,但如果我使用orderby=viewcountorderby=rating,它就可以工作。查询是否有问题,或者发布是否返回了不同的 json 结果,这些结果不适用于此脚本。此脚本来自
youtube-ajax-search-api

query="http://gdata.youtube.com/feeds/mobile/videos?alt=json-in-script&q=talking+tom&orderby=viewCount&start-index=1&max-results=20";

query="http://gdata.youtube.com/feeds/mobile/videos?alt=json-in-script&q=talking+tom&orderby=published&start-index=1&max-results=20";


<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript">
function SearchYouTube(query) {
    $.ajax({
        url: 'http://gdata.youtube.com/feeds/mobile/videos?alt=json-in-script&q=' + query,
        dataType: 'jsonp',
        success: function (data) {
            var row = "";
            for (i = 0; i < data.feed.entry.length; i++) {
                row += "<div class='search_item'>";
                row += "<table width='100%'>";
                row += "<tr>";
                row += "<td vAlign='top' align='left'>";
                row += "<a href='#' ><img width='120px' height='80px' src=" + data.feed.entry[i].media$group.media$thumbnail[0].url + " /></a>";
                row += "</td>";
                row += "<td vAlign='top' width='100%' align='left'>";
                row += "<a href='#' ><b>" + data.feed.entry[i].media$group.media$title.$t + "</b></a><br/>";
                row += "<span style='font-size:12px; color:#555555'>by " + data.feed.entry[i].author[0].name.$t + "</span><br/>";
                row += "<span style='font-size:12px' color:#666666>" + data.feed.entry[i].yt$statistics.viewCount + " views" + "<span><br/>";
                row += "</td>";
                row += "</tr>";
                row += "</table>";
                row += "</div>";
            }
            document.getElementById("search-results-block").innerHTML = row;
        },
        error: function () {
            alert("Error loading youtube video results");
        }
    });
    return false;
}
</script>

【问题讨论】:

    标签: jquery search youtube gdata


    【解决方案1】:

    您似乎使用了错误的网址。从您的代码:

    query="http://gdata.youtube.com/feeds/mobile/videos?alt=json-in-script&q=talking+tom&orderby=published&start-index=1&max-results=20";
    ...
    function SearchYouTube(query) {
        ...
        url: 'http://gdata.youtube.com/feeds/mobile/videos?alt=json-in-script&q=' + query
        ...
    

    您需要将不带 http-blah-blah-blah 前缀的查询字符串传递给您的函数 SearchYouTube(query)。不是您在上面的 query 变量中定义的,而是这样的:

    query="talking+tom&orderby=published&start-index=1&max-results=20";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      • 2018-11-02
      相关资源
      最近更新 更多