在Firefox固定选项卡上运行javascript

问题描述 投票:1回答:1

我想在Firefox的固定标签中打开的页面上运行一些javascript,特别是我想修改固定标签中加载的网页的dom。如何使用firefox插件API?

firefox firefox-addon firefox-addon-sdk add-on
1个回答
1
投票

您可以使用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"]
}
© www.soinside.com 2019 - 2024. All rights reserved.