0

我正在开发一个 Firefox 插件,Add-on SDK.
我正在尝试使用它打开窗口window.opendialog(),但它显示错误为
security error : operation is insecure.
代码:
window.openDialog("http://w3schools.com");
你能帮我解决这个问题吗?

4

1 回答 1

0

window.openDialog()只能从特权代码使用,不能从内容脚本中使用。事实是,您不想使用它 - 此功能仅对基于 XUL 的对话框有用(关于它的 MDN 文档非常具有误导性),这是附加 SDK 无法提供的。但是,对于 HTML 页面,您应该始终使用标准window.open()方法。

如果您真的想打开对话框,您可以使用低级window/utils模块从您的主要附加代码访问浏览器窗口并以openDialog()这种方式调用:

var utils = require("sdk/window/utils");
utils.getMostRecentBrowserWindow().openDialog(...);

尽管如此,内容脚本不能做到这一点——它必须向扩展发送消息并“要求”它运行该代码。

于 2013-10-27T08:27:54.810 回答