将javascript注入YouTube以使视频全屏显示

时间:2016-06-21 19:44:38

标签: javascript jquery google-chrome-extension youtube

我正在撰写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全屏显示的任何想法?

3 个答案:

答案 0 :(得分:3)

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

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

这意味着除非您有用户点击的按钮或具有此类性质的按钮,否则您将无法强制播放器全屏显示。

相关SO问题:

Javascript request fullscreen is unreliable

答案 1 :(得分:2)

您可以尝试这样的事情:

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

答案 2 :(得分:1)

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

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