想要用greatemonkey/javascript修改页面上的链接

Looking to modify the links on a page with greasemonkey/javascript

本文关键字:链接 修改 javascript greatemonkey      更新时间:2023-09-26

使用防油键,我想用删除的?####替换页面上以?####结尾的所有链接(####是随机字符(。

例如:

替换默认urlhttp//mysite.com/a/b-b1/product1/?####具有http//mysite.com/a/b-b1/product1/

这就是我得到的:

var anchors = document.getElementsByTagName('a');
for (var i = 0; i < anchors.length; i++) {
  var n = anchors.indexOf('?');
  link = anchors.substring(0, n != - 1 ? n : anchors.length);
  anchors[i].href = link.href
}

我也试过这个

s = s.substring(0, s.indexOf('?'));

谁也不做任何事。你看到这个片段有什么问题吗?想法?

您只是忘记了在锚点集合上应用索引。

var anchors = document.getElementsByTagName('a');
for (var i = 0; i < anchors.length; i++) {
  anchors[i].href = anchors[i].href.split("?")[0];
}

您没有使用索引从NodeList 中检索元素

但是,您可以使用一些老派循环和if条件以及regex的一些帮助来完成此操作。

var anchors = document.getElementsByTagName('a');
for(var i = 0; i < anchors.length; i++)
    anchors[i].href = anchors[i].href.replace(/'?.*/, "");

我之所以使用regex,只是因为它不需要检查?,然后再使用子字符串函数。。这很简单。它包含地替换?之后的任何内容,前提是它存在。如果不是,则不会进行替换。