Chrome中使用mouseenter的全屏解决方案?

时间:2015-08-27 20:37:16

标签: javascript google-chrome fullscreen

Chrome只允许通过"用户互动"全屏,即鼠标点击。

这有效:

addEventListener("click", function() {
    var el = document.documentElement, 
    rfs = el.webkitRequestFullScreen;
    rfs.call(el);
});

但以下情况并非如此。控制台报告"无法执行' requestFullScreen' on'元素':API只能由用户手势启动。"

addEventListener("mouseenter", function() {
    var el = document.documentElement, 
    rfs = el.webkitRequestFullScreen;
    rfs.call(el);
});

IMO,一个mouseenter事件与用户交互一样合理,但我想他们并不这么认为。

获取有关mouseenter的全屏的任何解决方法?

此尝试出现同样的错误:

addEventListener("click", function() {
    var el = document.documentElement, 
    rfs = el.webkitRequestFullScreen;
    rfs.call(el);
});

document.body.click();

我目前正在研究检测模拟鼠标点击的方法,因为Chrome显然正在这样做。

一种方法是寻找零坐标,因为真正的点击通常会有非零坐标。 (我认为)的解决方法是使用initMouseEvent,而不是简单的document.body.click();

另一种方法是检查事件的注册方式。解决方法是更改​​模拟事件的注册方式(可能吗?)

还有更多的方法。

资源: http://w3facility.org/question/javascript-how-to-check-if-mouse-click-event-is-simulated-or-is-native-non-jquery-way/

Detect if button click real user or triggered by a script

JavaScript: how to check if mouse click event is simulated or is native? (non-jquery way)

http://help.dottoro.com/ljtxvfef.php

https://softwareengineering.stackexchange.com/questions/206026/when-to-use-event-initmouseevent-for-simulating-mouse-clicks/206247#206247

THX!

0 个答案:

没有答案