在谷歌浏览器中,如果您尝试通过在控制台中输入命令进入全屏模式,它将失败并显示以下错误消息:
无法执行' requestFullscreen' on'元素':API只能由用户手势启动。
通过模拟点击事件来欺骗这个是不可能的(据我所知)。它仅在真实用户操作中触发时才有效。其他几个内置函数也有这种行为。
我可以在自己的函数中重现此行为吗?
换句话说,我可以创建一个功能,该功能在真实人类制作用户手势时触发,但在任何其他情况下都不会吗?
答案 0 :(得分:2)
在Chrome中,您可以使用Event.isTrusted
(MDN web docs)。
当用户做出手势时,您可能会将一个事件传递给您的处理程序。以下是点击事件的示例:
document.documentElement.onclick = function(event)
{
alert(event.isTrusted ? "trusted" : "untrusted");
};
// After 5 seconds perform an untrusted click
setTimeout(function() { document.documentElement.click() }, 5000);
当一个事件受信任时,它是由用户操作生成的,因此您可以执行您的功能。