【问题标题】:Inject javascript into YouTube to make video fullscreen将 javascript 注入 YouTube 以使视频全屏显示
【发布时间】:2016-10-23 12:35:21
【问题描述】:

我正在编写一个 Chrome 扩展程序来改变 YouTube 的功能。我在页面上注入了代码,我试图在某些情况下触发视频全屏。

我已经做了我能想到的一切,但无济于事。

双击视频:

$('video').click();
setTimeout(function() {
  $('video').click();
}, 40);

但是这种方式行不通。我不知道为什么,但我认为 Youtube 期望的是“真正的”点击或其他什么?

模拟“f”键:

var event = document.createEvent("UIEvents");
event.initUIEvent("keypress", true, true, window, 1);
event.keyCode = 70;

上面的几十种变体,似乎都不起作用。认为它可能是 Webkit 的东西。

链接到格式为:https://www.youtube.com/v/<vid-id> 的视频。但这不适合我的目的,因为我需要能够在页面加载后再次调用它。

有人知道如何在通过 Javascript 加载页面后使 Youtube 全屏显示吗?

【问题讨论】:

    标签: javascript jquery google-chrome-extension youtube


    【解决方案1】:

    Youtube 可能正在使用 requestFullScreen Javascript API 将视频播放器带到全屏。

    根据 requestFullScreen API 的规范,它必须由直接用户交互触发。

    这意味着您将无法强制播放器全屏播放,除非您有用户单击的按钮或类似的东西。

    相关的SO问题:

    Javascript request fullscreen is unreliable

    【讨论】:

    • 是的,你说得有道理。它适用于控制台,但不适用于代码。真是个巨魔。
    【解决方案2】:

    如果要双击,只需使用 dblclick() javascript 函数。

    此外,您可以尝试点击 youtube 视频的全屏按钮,而不是对视频进行 dblclick。

    【讨论】:

      【解决方案3】:

      你可以试试这样的:

      var vid = $("video");
      if (vid.requestFullscreen) {
        vid.requestFullscreen();
      } else if (vid.mozRequestFullScreen) {
        vid.mozRequestFullScreen();
      } else if (vid.webkitRequestFullscreen) {
         vid.webkitRequestFullscreen();
      }
      

      【讨论】:

        猜你喜欢
        • 2015-04-29
        • 2012-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-26
        • 2012-01-29
        相关资源
        最近更新 更多