如何建立打开/关闭Chrome扩展程序

时间:2018-11-18 09:53:29

标签: google-chrome google-chrome-extension google-chrome-devtools

我在构建chrome扩展程序方面是全新的。我试过建立一些扩展,当我单击它们时它们会起作用。这次,我一直在试图弄清楚如何构建一个开/关扩展插件。

基本上,我要构建的是一个扩展,该扩展在我打开和关闭代码时执行代码(例如:alert('Hi')),并且将继续在每个页面上运行,直到我将其关闭。 / p>

我已经看了很多东西,但是找不到任何可以解释如何做的好资源。 我有清单和html文件,我知道我需要popup.js和background.js文件,但我不知道要放什么。

manifest.json

sqlAlchemy

popup.html

{
  "manifest_version": 2,
  "name": "Toggle Extension",
  "description": "My Personal Toggle Extension",
  "version": "1.0.0",
  "icons": {
    "128": "img/icon_128.png"
  },
  "browser_action": {
    "default icon": "icon.png",
    "default_popup": "popup.html"
  },
  "background": {
    "scripts": ["js/background.js"]
  }
}

1 个答案:

答案 0 :(得分:0)

  

当我切换代码时执行代码的扩展(例如:alert('Hi'))   打开和关闭,并将继续在每个页面上运行,直到我切换它   关闭。

似乎您必须阅读大量有关此资源的信息:google extension guide 我将以这种方式完成此任务:

  1. popup.html具有popup.js文件,该文件具有发送功能 后台脚本的扩展状态(“ ON”或“ OFF”);
  2. content.js在浏览器的每个选项卡上运行,并以请求开头 后台脚本,无论您的扩展名是ON还是OFF;
  3. 后台脚本使用以下命令发送对每个内容脚本的响应: 分机的当前状态。
  4. 当内容脚本得到响应时, 它检查它并决定应该停止还是继续执行 脚本。

因此,很明显,一开始您需要一个内容脚本。将此代码段放入清单文件中:

"content_scripts": [
  {
    "js":         [ "content.js" ],
    "matches":    [ "<all_urls>" ],
    "all_frames": true,
    "run_at":     "document_end"
  }
],

content.js 文件的开头写入:

console.log("Hello, Yann!");

chrome.runtime.sendMessage( {myQuestion: "Is it ON or OFF?"}, function(response) {
  console.log( "Extension state is: " + response.state); // should be ON
  if(response.state !== "ON") return;

  // Put the code you want to execute on every tab below:
  // ....
});

您的 background.js 文件必须具有以下代码段:

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    console.log( "Your question was: "  + request.myQuestion );

    // here we will get information whether ext is ON or OFF from the popup;

    sendResponse({state: "I don't know, but I'll find it out!"});
  });

尝试一下,如果可行,我会尝试帮助弹出窗口。