我想在Firefox的固定标签中打开的页面上运行一些javascript,特别是我想修改固定标签中加载的网页的dom。如何使用firefox插件API?
您可以使用Firefox tabs API完成此操作。任何Tab都有一个“固定”属性,可以从后台页面读取。
例如,您可以用这种方式:
在后台脚本中创建isTabPinned请求桥,它将获取tab属性并将其发送到内容脚本。
bg.js
chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
if (msg.request == "isTabPinned") {
sendResponse(sender.tab.pinned);
}
});
在内容脚本中,将请求发送到后台脚本桥,以获取标签固定状态并在标签固定时修改DOM。
cs.js
chrome.runtime.sendMessage({ request: "isTabPinned" }, tabPinned => {
if(tabPinned){
//.. modify your DOM here
}
});
将内容脚本加载到需要检查的页面(或示例中的任何页面)和后台脚本。授予脚本“标签”和“ activeTab”权限。
manifest.json
{
"manifest_version": 2,
"name": "Pin Detector",
"version": "0.1",
"background": {
"scripts": ["bg.js"]
},
"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["cs.js"]
}
],
"permissions": ["tabs","activeTab"]
}