运行 javascript 在 firefox 的固定标签页上
Running javascript on pinned tabs in firefox
我想 运行 在 firefox 的固定标签中打开的页面上 javascript,特别是我想修改在固定标签中加载的网页的 dom。我如何使用 firefox 插件 api?
你可以用 Firefox 做到这一点 tabs API. Any Tab 有一个 "pinned" 属性 可以从后台页面读取。
比如你可以这样做:
在您的后台脚本中创建 isTabPinned 请求桥,它将获取选项卡 属性 并将其发送到内容脚本。
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
}
});
将内容脚本加载到您需要检查的页面(或示例中的任何页面)和后台脚本。为您的脚本授予 "tabs" 和 "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"]
}
我想 运行 在 firefox 的固定标签中打开的页面上 javascript,特别是我想修改在固定标签中加载的网页的 dom。我如何使用 firefox 插件 api?
你可以用 Firefox 做到这一点 tabs API. Any Tab 有一个 "pinned" 属性 可以从后台页面读取。
比如你可以这样做:
在您的后台脚本中创建 isTabPinned 请求桥,它将获取选项卡 属性 并将其发送到内容脚本。
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
}
});
将内容脚本加载到您需要检查的页面(或示例中的任何页面)和后台脚本。为您的脚本授予 "tabs" 和 "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"]
}