尝试使用openDialog()时出现安全性错误

时间:2013-10-23 06:18:02

标签: javascript firefox firefox-addon firefox-addon-sdk

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

1 个答案:

答案 0 :(得分:0)

window.openDialog()只能用于特权代码,而不能用于内容脚本。事实是,你不想要使用它 - 这个功能只对基于XUL的对话框有用(它上面的MDN文档非常容易引起误解),这是附加SDK无法实现的。 。对于HTML页面,您应始终使用标准window.open()方法。

如果确实想要打开对话框,您可以使用the low-level window/utils module从主要附加代码访问浏览器窗口并以这种方式调用openDialog()

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

但是,内容脚本无法做到这一点 - 它必须向扩展程序发送消息并“询问”它是否运行该代码。