【问题标题】:Greasemonkey remove string from url without regexGreasemonkey 在没有正则表达式的情况下从 url 中删除字符串
【发布时间】:2019-12-09 06:39:24
【问题描述】:

如果我的每个 URL 上都有一个包含引荐字符串的网页,我想用油脂猴删除,我该怎么做?

例如:

<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=','');

但我尝试的任何方法似乎都不起作用参见小提琴:Here

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

【问题讨论】:

  • 请注意,&lt;a href="www.google.com"&gt; The link &lt;/a&gt; 会将您链接到具有该路径的 internal 页面,这几乎肯定不是您想要的。您可能需要一个外部链接 - 将协议或 // 添加到 href 属性。

标签: javascript string url greasemonkey


【解决方案1】:

遍历每一个&lt;a&gt;,通过URLSearchParameters获取url参数,赋值给&lt;a&gt;href

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

【讨论】:

    【解决方案2】:

    document.getElementsByTagName 将返回直播HTMLCollection 并用strings 替换作品。

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

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

    【讨论】:

      猜你喜欢
      • 2020-04-22
      • 2017-08-24
      • 2018-01-28
      • 1970-01-01
      • 2011-01-30
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 2021-01-17
      相关资源
      最近更新 更多