繁体   English   中英

chrome.webRequest.onBeforeRequest触发不止一次?

[英]chrome.webRequest.onBeforeRequest firing more than once?

我正在尝试使用chrome的webRequest将变量添加到url的实验。 javascript非常简单。

chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    var url = details.url + '?tag=test';
    return {redirectUrl: url};
  },
{urls: ["<all_urls>"]},
["blocking"]);

但是,当我将其应用于任何域时,至少会得到该变量的两倍结果。 当我使用直接导航在cnn.com上进行测试时,实际上将变量附加了4次。

这是清单的相关片段。

"permissions": [
    "webRequest", "*://*.letags.com/*", "webRequestBlocking"
  ],

浏览器和服务器之间是否发生往返,因此服务器在实际显示之前将URL反馈给扩展名? 如果是这样,我将如何构造一个匹配查询以识别变量何时已存在?

这应该工作:

var url = details.url + (/\?tag=/.test(details.url) ? "" : "?tag=test");
// Explained if details.url contains the text "?tag=" -> don't add Parameter
// Else if it doesn't contain the Parameter -> add it. 

不是很漂亮,但是很管用。

这是RegExp的Javascript参考的链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM