0

我正在尝试使用 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 反馈到扩展中?如果是这样,我将如何构建匹配查询以识别变量何时已存在?

4

1 回答 1

1

这应该有效:

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 参考链接

于 2013-10-03T19:19:32.613 回答