大多数浏览器都允许扩展.但是,据我所知,不同的浏览器需要单独的扩展.
有没有办法为所有浏览器编写一个扩展名?可以创建Java,.NET或Python这样的东西吗?
我使用 chrome 扩展来触发两个内容脚本来注入 css。如果用户打开页面,则 contentscript-on.js 加载(在我的 manifest.json 中定义):
清单.json
{
"name": "tools",
"version": "1.1",
"description": "tools",
"browser_action": {
"default_icon": "icon-on.png",
"default_title": "tools"
},
"manifest_version": 2,
"content_scripts": [
{
"matches": [ "*://*/*" ],
"include_globs": [ "*://app.example.*/*" ],
"js": ["jquery-1.11.0.min.js", "contentscript-on.js"]
}
],
"background": {
"scripts": ["background.js"],
"persistent": true
},
"permissions": [
"storage",
"https://*.app.example.de/*", "tabs", "webNavigation"
]
}
Run Code Online (Sandbox Code Playgroud)
背景.js
function getToggle(callback) { // expects function(value){...}
chrome.storage.local.get('toggle', function(data){
if(data.toggle === undefined) {
callback(true); // default value
} else {
callback(data.toggle);
}
});
} …
Run Code Online (Sandbox Code Playgroud) javascript google-chrome google-chrome-extension browser-addons
我在 chrome 扩展中使用 content_scripts 来捕捉打开新站点的事件。但是,当我单击此站点时,不会触发将我重定向到子站点的链接。
使用重新加载来处理链接点击的网站并不常见。单击链接后,我被重定向到类似(AJAX?):
http://somesite.com/page#something
所以我想它是动态加载的。如何处理所有重新加载此页面的事件?
如何不仅通过输入 URL 字段还通过单击链接来捕获加载页面的每个事件?
我正在使用插件sdk/tabs api将内容脚本注入到选项卡中,如下所示:
tabs.on(ready, function (tab) {
var worker = tab.attach({
contentScriptWhen: 'end',
contentScriptFile: myAwesomeArrayOfScripts
});
...
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以阻止对域模式的附加?最重要的是,我需要阻止它工作:像Firefox的新标签页这样的域.
显然,我能够用这样的代码控制执行:
if (tab.url.indexOf('about:') === 0) return;
Run Code Online (Sandbox Code Playgroud)
但与chrome声明清单相比,它看起来非常不清楚,你可以在这里:
"content_scripts": [
{
"matches": [ "http://*/*", "https://*/*", "file://*/*" ],
Run Code Online (Sandbox Code Playgroud)
有类似的东西吗?Firefox文档令人困惑......太多东西和过去的版本和文章太多了.
firefox-addon google-chrome-extension browser-addons firefox-addon-sdk