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();
另一种方法是检查事件的注册方式。解决方法是更改模拟事件的注册方式(可能吗?)
还有更多的方法。
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
THX!