小编Bob*_*Ham的帖子

Firefox SDK从内容脚本访问首选项

关于

我正在使用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)

javascript firefox-addon firefox-addon-sdk

7
推荐指数
1
解决办法
863
查看次数