如何根据当前的url扩展页面操作更改弹出内容

时间:2015-02-01 15:24:09

标签: google-chrome google-chrome-extension

我是创建Chrome扩展程序的新手,我正在开发一个扩展页面操作,它在某些网址中有效,我想在弹出窗口中为每个网址添加不同的文字,我能做到吗?请帮帮我。

我的background.js因此

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {

  if (~tab.url.indexOf('url1.com.br')) {
  chrome.pageAction.show(tabId);
 }

 if (~tab.url.indexOf('url2.com.br')) {
 chrome.pageAction.show(tabId);
}

});

1 个答案:

答案 0 :(得分:1)

行。首先,在特定网址上显示page_action图标,您可以使用声明性内容

// When the extension is installed or upgraded ...
chrome.runtime.onInstalled.addListener(function() {
  // Replace all rules ...
  chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
    // With a new rule ...
    chrome.declarativeContent.onPageChanged.addRules([
      {
        // That fires when a page's on a specific URL
        conditions: [
          new chrome.declarativeContent.PageStateMatcher({
            pageUrl: { urlContains: 'url1.com.br' },
          }),
          new chrome.declarativeContent.PageStateMatcher({
            pageUrl: { urlContains: 'url2.com.br' }
          })
        ],
        // And shows the extension's page action.
        actions: [ new chrome.declarativeContent.ShowPageAction() ]
      }
    ]);
  });
});

不要忘记在 manifest.json 中添加声明性内容的权限。另一件事是不同网址的不同文本。

popup.js

chrome.tabs.query({'active': true, 'currentWindow': true}, function (tabs) {
  var dynamicText = "You are here;"+ tabs[0].url;
  document.getElementById("textbox").value = dynamicText ;
});

此示例获取currentWindow的URL并将其插入到具有文本框ID的元素中。我希望样本足以解决问题。