在 Google Chrome 中,如果您尝试通过在控制台中输入命令来进入全屏模式,将会失败并显示以下错误消息:
Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture.
(据我所知)不可能通过模拟点击事件来欺骗这一点。它仅在真实用户操作内触发时才有效。其他几个内置函数也有这种行为。
我可以在自己的函数中重现此行为吗?
换句话说,我可以创建一个函数,该函数在由真人做出用户手势触发时起作用,但在任何其他情况下都不起作用吗?
最佳答案
在 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);
当事件可信时,它是由用户操作生成的,因此您可以执行您的函数。
关于javascript - 创建一个只能从 Google Chrome 中的用户手势内部调用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43009028/