1

我有 SDK 1.13,我想使用 pageload API 在 Firefox 浏览器中加载 html 表单时发出警报消息。但我在控制台上遇到错误:未定义要求。我已将 SDK 添加的 cfx 文件链接到文件系统目录:

ln -s PATH_TO_SDK/bin/cfx ~/bin/cfx

尽管如此,我还是无法解决这个错误。这是我的代码(包含在 XUL 文件中):

var pageMod = require("sdk/page-mod");
    pageMod.PageMod({
    include: "*.html",
    contentScript: 'window.alert("Page matches ruleset");'
}); 
4

2 回答 2

1

我假设您在尝试 cfx 运行之前已经安装了 SDK 并在您的扩展程序中运行了 bin\activate,对吗?

你不能从 XUL 文件中运行这些东西,这就是为什么 require... 不能工作的原因。所有这些都需要在 main.js 中(在 lib 文件夹中)。您需要通过您将编写的内容脚本(在数据文件夹中)进行通信。当 html 加载时(我会从内容脚本中添加一个 window.listener 或其他内容),您将使用 port.emit("loaded") 或类似的内容,然后您必须在 main.js 中使用某些内容进行监听像 addon.port("loaded",somefunction)。有很多关于这方面的好文档!

于 2014-08-18T22:02:58.043 回答
0

XUL 文件与 SDK 模块完全相反。SDK 和 XUL 比较

于 2013-08-22T21:39:59.100 回答