错误:访问属性“target”的权限被拒绝

Error: Permission denied to access property 'target'

提问人:John 提问时间:3/10/2020 最后编辑:Eugene MihaylinJohn 更新时间:5/10/2023 访问量:1272

问:

如何确定后续代码是否具有权限,以避免出现以下错误消息:

错误:访问属性“target”的权限被拒绝

这发生在 Firefox 的事件处理程序中:dragleave

window.ondragleave = function(event) {
  if (typeof event.target == 'object') {
    var droppable = element_parent(event.target, (event.target.hasAttribute && event.target.hasAttribute('data-drop')), (event.target.nodeName != 'html'));
  }
}
  • 此问题相当罕见,每月在多个域中发生一次

  • 此问题发生在桌面上的 Firefox 中

  • 尽管错误日志中的报告非常可靠,但我没有亲自重现该问题

  • 没有框架或库

有一个权限 API,尽管它似乎无法从 Waterfox 56 / Firefox 74B 开始访问。我已经多次尝试通过拖动页面的选定和非选定部分并将光标“离开”各种元素、表单字段和页面本身来直接重现该问题,尽管我每隔几周就会看到一次此错误报告一次。event.permissionsevent.target.permissions

建议?

JavaScript 事件 错误处理 dom-events

评论

0赞 Joel Garcia Nuño 3/25/2020
caniuse.com/#search=permissions 检查一下,可能对你有帮助
0赞 mikerojas 3/26/2020
看起来这是相同或类似的问题:github.com/getsentry/sentry-javascript/pull/857?也许能从那里提出一些想法......
1赞 Coli 3/29/2020
这与 iframe 有关,与权限 API 无关。请参阅 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...我认为检查或首先可能会有所帮助。window.self !== window.topwindow.frameElement != null
2赞 Coli 3/29/2020
@John 那么,也许你的网站是一个 iframe。
1赞 Kevin Languasco 3/30/2020
@John使用 Sentry 来跟踪这些错误,或者如何跟踪?如果是这样,库版本是什么?你有堆栈跟踪吗?

答:

0赞 Zwiqy45 5/10/2023 #1

感觉我缺少一些上下文,比如 html。但我认为你不应该从窗口中使用 ondragleave。我会在这里遵循带有 div 的基本设置。在此基础上再接再厉。