【问题标题】:Permission denied to call method HTMLAnchorElement.focus调用方法 HTMLAnchorElement.focus 的权限被拒绝
【发布时间】:2011-08-04 20:20:15
【问题描述】:

升级到 Firefox 4 后,我开始在我维护的网站上看到此错误:

Permission denied for <...> to call method HTMLAnchorElement.focus

我已经构建了一个简单的场景来重现错误:

<html>
    <body>
        <a id="lnk" href="http://www.google.com/">Google</a>
        <form>
            <input type="text" />
            <input type="submit" />
        </form>
        <script>
            document.onkeypress = function(e) {
                e = (e ? e : event);
                var key = (e.which ? e.which : e.keyCode);
                if(key == 13) {
                    var lnk = document.getElementById('lnk');
                    lnk.focus();
                    return false;
                }
            }
        </script>
    </body>
</html>

这在升级到 Firefox 4 之前运行良好……但是,我也不认为问题完全是 Firefox 的错。我这样说是因为它实际上似乎只发生在我的桌面安装上。我可以在其他 FF4 安装上使用相同的页面而不会出错。我已禁用所有扩展并重新启动,但错误仍然存​​在。知道我的安装中可能会导致这种情况的更改/插件/插件/任何东西吗?

谢谢...

【问题讨论】:

  • 当用户按下回车键时,你想通过将焦点设置到链接来完成什么?
  • 我在 firfox 4 中尝试了您的页面,没有问题。在页面上按 enter 会聚焦链接。我没有使用任何插件,我会尝试禁用您的插件并一次重新启用它们
  • @daniellmb :我网站的原始代码实际上聚焦了链接,然后“点击”它。重点就在那里,因为在我们的某些页面上,文本框具有需要触发的 onblur 事件,而仅仅单击链接是不允许的。
  • @kennebec :如前所述,我禁用了所有扩展程序并且问题仍然存在,否则我会遵循您的方法。所以我真的不认为它是一个扩展(除非即使禁用它也可以改变 FF 行为)。还有其他想法吗?谢谢...
  • 所有这些代码都在同一个域上运行对吧?这不是跨源安全问题吗?

标签: javascript firefox firefox-addon firefox4 permission-denied


【解决方案1】:

由于它只发生在一台机器上,它可能是您设置的环境问题,很难说,我也无法重现它。我看过一些建议添加 setTimeout 延迟的示例,在黑暗中拍摄,但您可以尝试一下。

【讨论】:

  • 感谢您的回复,daniellmb。我同意你的观点,这是一个环境问题——很可能 Stack Overflow 不是这个问题的地方,但我不确定是否有任何堆栈站点是完全正确的......所以我想我会发帖看看有没有其他人看过,或者我在代码中做错了什么。
猜你喜欢
  • 2010-10-28
  • 1970-01-01
  • 2014-03-31
  • 1970-01-01
  • 2022-11-05
  • 2015-08-30
  • 1970-01-01
相关资源
最近更新 更多