我最近为javascript编写了一个菜单界面,它可以让你动态地添加选项,而且大多数情况下都可以使用mouseEnter事件。我后来添加了一些基本的视频控件,使用request/exit Fullscreen触发其中一个mouseEnter事件,大多数时候它显示Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture.
,但是(奇怪的是:)有时它可以工作,我不确定浏览器API如何决定一个操作是否是用户手势。如果有任何帮助,我将不胜感激,谢谢
2条答案
按热度按时间fnvucqvd1#
以下是规范中定义的可触发“* 用户激活 *”的事件列表:
这就是当他们说“一个用户手势”时,你的错误消息所指的。
mouseenter
不在此列表中。最有可能的是,当它工作时,是因为其中一个事件发生在不到几毫秒之前(IIRC目前在Chrome中是50毫秒)。
a5g8bdjr2#
值得一提的是,当使用
addEventListener()
调用来监视元素上的用户事件时,我一直成功地触发了需要用户手势的操作,而使用旧的onClick
属性来指定元素的事件则没有成功。