如何为pageAction添加点击?

时间:2013-03-29 21:02:10

标签: google-chrome-extension

第一次延期 - 请善待。

我的目标是在用户访问特定域的网页时提供一个选项,以提供启动另一个页面的选项,该页面使用部分访问过的网页的域名作为变量。

下面这段代码可以满足我的需求,但它不会将操作作为选项提供 - 它只是执行。

当访问与域匹配的页面时,它会向地址栏添加一个图标。我希望只有当用户点击该图标时才会加载调用的新页面。如果那是不可能的,请提出替代方案。

谢谢!

function checkForValidUrl(tabId, changeInfo, tab) {

  if (tab.url.indexOf('.foo.com') > -1) {

    chrome.pageAction.show(tabId);
    var myName = tab.url.split(".")[0].slice(7);

    if (myName != "www"){ //ignore main site

    chrome.tabs.update(tab.id, {url: "http://foo.com/foo.html?t=" + myName});
    }

  }
};

chrome.tabs.onUpdated.addListener(checkForValidUrl);

2 个答案:

答案 0 :(得分:11)

您只需使用chrome.pageAction.onClicked即可。例如:

function checkForValidUrl(tabId, changeInfo, tab) {
  if (tab.url.indexOf('.foo.com') > -1) 
    chrome.pageAction.show(tabId);
};

chrome.tabs.onUpdated.addListener(checkForValidUrl);

chrome.pageAction.onClicked.addListener(function(tab){
  var myName = tab.url.split(".")[0].slice(7);
  if (myName != "www") //ignore main site
    chrome.tabs.update(tab.id, {url: "http://foo.com/foo.html?t=" + myName});
});

答案 1 :(得分:2)

以上答案是正确的,但请注意,您需要在清单中拥有正确的权限才能使其生效,否则UIButton将无法定义。

来自文档tab.url

链接 - https://developer.chrome.com/extensions/tabs#type-Tab