使用greasemonkey,我想替换以“?####
结尾的所有链接 - ####是随机字符”并移除?####
。
例如:
替换默认网址
http//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('?'));
两者都没有做任何事情。你觉得这个片段有问题吗?想法?
答案 0 :(得分:0)
您只是忘记在锚点集上应用索引。
var anchors = document.getElementsByTagName('a');
for (var i = 0; i < anchors.length; i++) {
anchors[i].href = anchors[i].href.split("?")[0];
}
答案 1 :(得分:0)
您没有使用索引从NodeList
但是,您可以使用一些旧式循环和if-conditions以及一些正则表达式的帮助。
var anchors = document.getElementsByTagName('a');
for(var i = 0; i < anchors.length; i++)
anchors[i].href = anchors[i].href.replace(/\?.*/, "");
我之所以使用正则表达式,是因为它不需要检查?
然后使用子字符串函数。这很简单。它包含?
之后的任何内容,只有它存在时才会替换。如果不是,则不会发生替换。