制作一个只能在Google Chrome中用户手势内调用的功能

时间:2017-03-24 20:57:45

标签: javascript google-chrome gesture

在谷歌浏览器中,如果您尝试通过在控制台中输入命令进入全屏模式,它将失败并显示以下错误消息:

  

无法执行' requestFullscreen' on'元素':API只能由用户手势启动。

通过模拟点击事件来欺骗这个是不可能的(据我所知)。它仅在真实用户操作中触发时才有效。其他几个内置函数也有这种行为。

我可以在自己的函数中重现此行为吗?

换句话说,我可以创建一个功能,该功能在真实人类制作用户手势时触发,但在任何其他情况下都不会吗?

1 个答案:

答案 0 :(得分:2)

在Chrome中,您可以使用Event.isTrustedMDN 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);

当一个事件受信任时,它是由用户操作生成的,因此您可以执行您的功能。