Greasemonkey 在没有正则表达式的情况下从 url 中删除字符串

Greasemonkey remove string from url without regex

如果我有一个网页,每个 URL 上都有推荐字符串,我想用 greasemonkey 删除它,我该怎么做?

例如:

<a href="https://website.refer?url=www.google.com"> The link </a>

The link

更改为:

<a href="www.google.com"> The link </a>

The link

如何删除 URL?

的“/website.refer?url=”部分

我已经尝试过诸如:

document.getElementsByTagName("a").replace('/website.refer?url=','');

然而我似乎没有任何尝试见fiddle:Here

请不要使用正则表达式。谢谢

遍历每个 <a>,通过 URLSearchParameters 获取 url 参数,并将其分配给 <a>:

href

document.querySelectorAll('a').forEach((a) => {
  const params = new URLSearchParams(a.href.split('?')[1]);
  a.href = '//' + params.get('url');
});
<a href="https://website.refer.com?url=www.google.com"> The link </a>

document.getElementsByTagName 将 return 直播 HTMLCollection 并将作品替换为 strings

相反,您可以获取每个 a 标记的 href 属性并对其使用替换。

document.querySelectorAll('a').forEach(a => {
  const newHref = a.getAttribute('href').replace('//website.refer?url=', '');
  a.href = newHref;
});
  <a href="https://website.refer?url=www.google.com"> Link 1 </a>