我正在使用Firefox Add-on SDK开发Firefox附加组件.该加载项将是特定于站点的,它将根据用户首选项隐藏某些元素.
几年前我已经制作了这个附加组件,但是使用新的SDK会有所不同.
因为附加组件是特定于站点的,我需要修改站点的内容,所以我使用" PageMod "模块
[ main.js ]
pageMod.PageMod({
include: "*.ipvisie.com",
contentScriptFile: [
data.url('jquery-1.11.1.min.js'),
data.url('script.js')
]
});
Run Code Online (Sandbox Code Playgroud)
这很好用,实现了jQuery,我可以从script.js添加和运行javascript
我在' package.json '中声明了首选项,这很有效.我可以从' main.js ' 访问它
我的问题是ContentScript无法访问用户首选项.
如何在ContentScript的script.js中访问当前首选项?
尝试1
我尝试的第一件事就是从ContentScript请求首选项
if (require('sdk/simple-prefs').prefs['somePreference'] == true) {
alert('Pref checked');
}
Run Code Online (Sandbox Code Playgroud)
尝试2
我在文档中读到可以使用ContentScript发送一些只读参数.这似乎有效,但当我改变我的偏好时,价值已经设定.只有我重新启动浏览器才会传递正确的设置.
contentScriptOptions: {
advertLink: require('sdk/simple-prefs').prefs['advertTop'],
advertDay: require('sdk/simple-prefs').prefs['advertDay'],
advertAdmart: require('sdk/simple-prefs').prefs['advertAdmart'],
advertLink: require('sdk/simple-prefs').prefs['advertLink']
}
Run Code Online (Sandbox Code Playgroud)