从网页触发/调用Chrome扩展程序

时间:2012-01-03 13:11:53

标签: javascript google-chrome-extension

对于我目前正在处理的项目,我需要知道是否可以调用Chrome扩展程序。

即,单击我页面上的按钮(或链接)会调用“Read It”扩展名,就像那样。

4 个答案:

答案 0 :(得分:3)

您可以将content-script注入每个页面(在extension manifest中注册)并更改页面html,以使用您的自定义ID添加buttona。< / p>

execution environment example解释了如何触发从页面到内容脚本的事件。管理触发器后,您可以执行任何您想要的扩展逻辑。

另请注意,这需要将扩展​​程序content-script注入用户访问的每个页面。如果那就是您要求的内容,则无法从页面实际触发content-script的执行。

答案 1 :(得分:1)

是的,这是可能的。您可以编写一个所谓的Content Script来更改页面并将事件处理程序挂钩到链接或按钮。

答案 2 :(得分:1)

使用background.js和content.js创建清单。 使用

chrome.tabs.sendMessage(tabId, {}, function() { ... });

在后台向内容脚本发送消息,该内容脚本将注入到安装和启用扩展时打开的每个网页中。 在content.js脚本上使用

chrome.runtime.onMessage.addListener(function(req, sender, callback) {  
    < here use condition to find out when this exetnsion's popup.html should be opened and call the callback function which was passed in the argument list intially >
    callback("something");
});

这里回调函数在background.js中定义并传递给content.js是用于打开新扩展窗口的代码,例如

var panel_props = {
            type: 'panel',
            'width': width,
            'height': height,
            'left': left,
            'top': top,
            url: "chrome-extension://" + <extensionid>+ "/index.html"   
          }

          chrome.windows.create(panel_props ,function (newWindow) { 
              vid = newWindow.id;
          });

答案 3 :(得分:0)

  1. 在您的网页代码中进行“伪” ajax调用。
  2. 在您的扩展程序中拦截它(请参阅https://medium.com/@gilfink/adding-web-interception-abilities-to-your-chrome-extension-fb42366df425
  3. 在拦截中,取消“假”呼叫并实现所需的行为。