Chrome扩展程序无需弹出或任何可视元素

时间:2014-08-11 23:53:32

标签: javascript google-chrome browser google-chrome-extension

我第一次尝试编写一个chrome插件,虽然我有基本的javascript知识,但我不知道如何启动我的脚本。

我的基本问题是我不想使用弹出窗口或任何其他菜单来启动我的脚本,但我无法弄清楚如何执行此操作。我的意图是扩展程序在启动时运行命令然后退出。

我试图找出如何启动我的Chrome扩展程序,无需通过任何可视元素启动它。

这就是我所拥有的:

的manifest.json

{
  "manifest_version":2,
  "name":"Audiotool control",
  "version":"1",
  "content_scripts":[
    {
      "matches":[
        "http://www.audiotool.com/*"
      ],
      "js":[
        "jquery.js",
        "content_script.js"
      ]
    }
  ],
  "offline_enabled":true,
  "permissions":[
    "tabs",
    "http://www.audiotool.com/*"
  ]
}

main.js

chrome.tabs.query({url: "http://www.audiotool.com/*", }, function(tabs) {
  chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"}, function(response) {
    console.log(response.farewell);
  });
});

content_script.js(不是很重要,但以防万一)

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    console.log(sender.tab ?);
    if (request.greeting == "hello")
      alert("message received")
      sendResponse({farewell: "function called"});
  });

//var e = $.Event("keydown", { keyCode: 32}); 
//$("body").trigger(e);

重申一下,我试图找出如何启动我的Chrome扩展程序,无需通过任何视觉元素进行操作。

1 个答案:

答案 0 :(得分:0)

好吧,main.js永远不会运行,因为你没有在清单中指定它。你可能在清单中想要这样的东西:

"background": {
  "scripts": ["main.js"],
  "persistent": false
},

之后,您只会在扩展程序启动时触发main.js。您需要添加一个侦听器并在其中执行操作。如:

chrome.tabs.onUpdated.addListener(function() {
  //do stuff
});