javascript - 多个网站上的 Chrome pageAction 扩展

标签 javascript google-chrome-extension

在我的background.js中,我使用以下代码让我的pageAction扩展显示在Amazon.com上

function checkForValidUrl(tabId, changeInfo, tab) {
  if (tab.url.indexOf('amazon.com') > -1) {
    chrome.pageAction.show(tabId)   
    chrome.pageAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(tab.id, {file: "bookmarklet.js"})
});
}
};
chrome.tabs.onUpdated.addListener(checkForValidUrl);

如何更改代码以便扩展名同时显示在 amazon.com 和 google.com 页面上?

谢谢。

最佳答案

  • 您只需设置一次 chrome.pageAction.onClicked.addListener 处理程序,这样的代码会给您带来麻烦。
  • urlchangeInfo 成员是可选的,在某些情况下可能不存在
  • 在某些情况下,您检查亚马逊可能会失败。例如网址 http://google.co.uk?q=amazon.com 。先用正则表达式解析url。 This是可能的解决方案之一

解析 url 的示例代码

var host = parseURL(tab.url).host;
if (host.indexOf("amazon.com") >= 0 || host.indexOf(".google.") >= 0) {
  // handle these pages
}

关于javascript - 多个网站上的 Chrome pageAction 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18906709/

相关文章:

JavaScript 正则表达式,搜索主题标签

javascript - 电子邮件验证提示不正确

Javascript chrome 扩展内容脚本

JavaScript 从文本字符串 PUT 文件

google-chrome - Chrome 扩展 : Getting the source HTML of the current page on page load

javascript - Meteor 模板不起作用/空白页

javascript - 使用删除重复 html 控件的正确方法是什么

javascript - Webpack 输出是反向的

google-chrome - 有没有办法在 Google Chrome 扩展中获取命令行参数?

google-chrome - 如何从扩展的内容脚本打开我的 chrome 扩展的弹出页面?