【问题标题】:Enforce nocookie mode when using the YouTube iframe API使用 YouTube iframe API 时强制执行 nocookie 模式
【发布时间】:2019-05-20 16:56:34
【问题描述】:

我想确保当我初始化 new YT.player() 时,我可以设置它以确保它使用来自 www.youtube-nocookie.com 域的嵌入。目前这可能吗?我还没有在文档中找到任何对它的引用。

【问题讨论】:

    标签: youtube-iframe-api


    【解决方案1】:

    我知道,这是一个迟到的答案,但可能相关,因为它仍在工作:

    您可以使用主机参数:

    function onYouTubeIframeAPIReady() {
      var player = new YT.Player('player', {
        videoId: 'aqz-KE-bpKQ',
        host: 'https://www.youtube-nocookie.com',
        playerVars: {
          origin: window.location.host
        }
      });
    }
    
    var s = document.createElement('script');
    s.src = 'https://www.youtube.com/iframe_api';
    document.head.appendChild(s);
    <div id="player"></div>

    遗憾的是,由于同源策略,它在 stackoverflow 上不起作用。

    不过,我在一个活动项目中运行了相同的代码..

    【讨论】:

    【解决方案2】:

    啊。就在我即将发布我的问题时,我设法解决了这个问题。

    在我的代码中,我使用了类似的东西:

    <iframe id="myVideo" src="https://www.youtube-nocookie.com/embed/<VIDEO_ID>?enablejsapi=1"></iframe>
    

    ...那么我可以使用下面的方法来获取已经通过JS嵌入到HTML中的播放器:

    var player;
    var onYouTubeIframeAPIReady = function() {
      player = new YT.Player("myVideo");
    };
    

    不过,如果有一种方法也可以用 JS 初始化 www.youtube-nocookie.com 视频,那就太好了。

    【讨论】:

    • 您的设置是否在嵌入式视频上展示广告?当我将 youtube-nocookie.com 与 iframe embed(不是 iframe API)一起使用时,视频不会显示广告。但是当我将它与 iframe API 一起使用时,视频会显示广告。任何想法为什么它使用 iframe API 显示广告? Listenonrepeat.com 似乎正在这样做,但无法弄清楚他们是如何做到的......
    猜你喜欢
    • 2017-08-30
    • 2013-09-26
    • 2012-01-14
    • 2019-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 2016-12-11
    相关资源
    最近更新 更多