html - 在网页中嵌入 Youtube 评论

标签 html xhtml youtube youtube-api

我想在网页中嵌入 YouTube 评论。我找到这段代码:

<feed>
  <entry>
    ...
    <media:group>
      ...
    </media:group>
    <gd:comments>
      <gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/4eYSpIz2FjU/comments'/>
    </gd:comments>
  </entry>
</feed>

我试图将此代码包含在页面中进行测试,但它不显示评论。但是当我访问 url http://gdata.youtube.com/feeds/api/videos/4eYSpIz2FjU/comments 时 评论显示成功。

我是不是嵌入错了?我是否应该包含任何其他脚本引用以访问 Youtube 评论?

最佳答案

我找到了一个可行的解决方案,有人发布了 this几年前的代码,我不认为这是功劳。

我在我的网站上对其进行了测试,效果非常好。

您显然想要添加样式并删除一些内联 html 样式。附带说明一下,您将需要添加视频 ID。如果您不知道如何执行此操作,请将 PHP 调用 ( <?php echo $_GET['v']; ?> ) 替换为 id,或者简单地在 PHP 中的某处定义 v 。注意:如果您要手动添加 ID,则必须在 2 个位置执行此操作。希望对您有所帮助。

<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.1.min.js"></script>
    <script type= "text/javascript">
    function getYouTubeInfo() {
            $.ajax({
                    url: "http://gdata.youtube.com/feeds/api/videos/<?php echo $_GET['v']; ?>?v=2&alt=json",
                    dataType: "jsonp",
                    success: function (data) { parseresults(data); }
            });
    }

    function parseresults(data) {
            var title = data.entry.title.$t;
            var description = data.entry.media$group.media$description.$t;
            var viewcount = data.entry.yt$statistics.viewCount;
            var author = data.entry.author[0].name.$t;
            $('#title').html(title);
            $('#description').html('<b>Description</b>: ' + description);
            $('#extrainfo').html('<b>Author</b>: ' + author + '<br/><b>Views</b>: ' + viewcount);
            getComments(data.entry.gd$comments.gd$feedLink.href + '&max-results=50&alt=json', 1);
    }

    function getComments(commentsURL, startIndex) {
            $.ajax({
                    url: commentsURL + '&start-index=' + startIndex,
                    dataType: "jsonp",
                    success: function (data) {
                    $.each(data.feed.entry, function(key, val) {
                            $('#comments').append('<br/>Author: ' + val.author[0].name.$t + ', Comment: ' + val.content.$t);
                    });
                    if ($(data.feed.entry).size() == 50) { getComments(commentsURL, startIndex + 50); }
                    }
            });
    }

    $(document).ready(function () {
            getYouTubeInfo();
    });
    </script>
    <title>YouTube</title>
</head>
<body bgcolor="grey">
    <div align="center">
            <br/><br/>
            <div id="title" style="color: #dddddd">Could not find a title</div><br/>
            <iframe title="Youtube Video Player" width="640" height="390" src="http://www.youtube.com/embed/<?php echo $_GET['v']; ?>?fs=1&autoplay=1&loop=0" frameborder="0" allowfullscreen style="border: 1px solid black"></iframe>
            <br/><br/>
            <div id="description" style="width:400px; background-color: #dddddd; font-size:10px; text-align:left;">Could not find a description</div>
            <div id="extrainfo" style="width:400px; background-color: #dddddd; font-size:10px; text-align:left;">Could not find extra information</div>
            <div id="comments" style="width:400px; background-color: #dddddd; font-size:10px; text-align:left;">Could not find comments</div>
    </div>

关于html - 在网页中嵌入 Youtube 评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18341635/

相关文章:

html - 使用 CSS 的导航菜单

html - H1如何防止继承?

json - 405方法不允许-尝试使用Mootools从Youtube检索JSON提要的Firebug错误

youtube - 如何在 three.js 中使用视频元素或 html 内容作为面部纹理?

javascript - 尝试使用 Jquery 在 WordPress 页面上显示 YouTube 点击次数

html - 带 Flexbox 的电视 Remote 布局

c# - 如何解析不是 100% 有效的 XHTML 文件?

javascript - 如何让HTML代码更具可读性?

html - AngularJS 日期选择器布局

javascript - 切换类/ID