在Backround.js Chrome扩展中使用匹配模式

我正在做一个Chrome扩展项目,但是不能让匹配模式工作,所以它覆盖了用户经过域的任何地方。举个例子,如果用户转到https://www.google.com/imghp?hl=en让代码在那里再次执行。是否可以在backround.js文件中执行此操作?

  chrome.webNavigation.onCompleted.addListener(function() {
      alert("This is my favorite website!");
  }, {url: [{urlMatches : '*://www.google.com/*'}]});

我尝试使用"://www.google.com/"的变量,例如:

var site = "*://www.google.com/*"
will not let me pass this into either url: 'site'
or {url: [{urlMatches : 'site'}

解决方案

如documentationurlMatches中所示,它不使用匹配模式,它使用正则表达式和RE2 syntax。

对于*://www.google.com/*,只需切换到hostEquals

chrome.webNavigation.onCompleted.addListener(info => {
  console.log(info);
}, {
  url: [{hostEquals: 'www.google.com'}],
});

请注意,在JavaScript中'site'是与变量site无关的文字字符串。

相关文章