用于替换 url 中字母的 greasemonkey 脚本
greasemonkey script to replace a a letter in the url
我尝试修改我发现的一些脚本 - 但它们不起作用。
当加载的页面上有一个 link 指向:
https://website.new/ia-o/number1/number2/number3/number4.jpeg.html
我希望它实际指向:
https://website.new/ib-o/number1/number2/number3/number4.jpeg.html
所以基本上只替换 link 中的一个字母(从 */ia-o/*
到 */ib-o/*
)
这是我试过的脚本:
// ==UserScript==
// @name website.new
// @namespace lii
// @description redirect to anothersite
// @include https://website.new/*
// @version 1
// @grant none
// ==/UserScript==
var links,thisLink;
links = document.evaluate("//a[@href]",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
for (var i=0;i<links.snapshotLength;i++) {
var thisLink = links.snapshotItem(i);
thisLink.href = thisLink.href.replace('https://website.new/ia-o/',
'https://website.new/ib-o/');
}
但它什么也没做。
如果有人能提供帮助 - 我将不胜感激!
第二部分:
更好的解决方案是,如果我可以像这样重新制作整个 link。
网页上的旧 link:https://website.new/ia-o/number1/number2/number3/number4.jpeg.html
页面上的新 link:https://website.new/o/number1/number2/number3/number4.jpeg
(因此从 link 中删除 ia- 和 .html)
但任何一种解决方案都可以!
谢谢!
替换当前页面中找到的所有链接中的 href 属性
// ==UserScript==
// @name website.new
// @namespace lii
// @description redirect to anothersite
// @include https://website.new/*
// @version 1
// @grant none
// ==/UserScript==
(function() {
for (var i=0,link; (link=document.links[i]); i++) {
link.href = link.href.replace('oldvalue', 'newvalue');
}
})();
你可以替换单个字母
link.href.replace('a', 'o');
或整个单词
link.href.replace('grease', 'tamper');
在您的特定情况下,只需将不需要的字符串替换为空字符串即可删除它们
link.href = link.href.replace(/ia-|\.html/g, '');
这与之前的回复类似,只是缩短了一点
// ==UserScript==
// @name website.new
// @namespace lii
// @description redirect to anothersite
// @include https://website.new/*
// @version 1
// @grant none
// ==/UserScript==
[...document.links].forEach(item => item.href = item.href.replace('oldvalue', 'newvalue'));
我尝试修改我发现的一些脚本 - 但它们不起作用。
当加载的页面上有一个 link 指向:
https://website.new/ia-o/number1/number2/number3/number4.jpeg.html
我希望它实际指向:
https://website.new/ib-o/number1/number2/number3/number4.jpeg.html
所以基本上只替换 link 中的一个字母(从 */ia-o/*
到 */ib-o/*
)
这是我试过的脚本:
// ==UserScript==
// @name website.new
// @namespace lii
// @description redirect to anothersite
// @include https://website.new/*
// @version 1
// @grant none
// ==/UserScript==
var links,thisLink;
links = document.evaluate("//a[@href]",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
for (var i=0;i<links.snapshotLength;i++) {
var thisLink = links.snapshotItem(i);
thisLink.href = thisLink.href.replace('https://website.new/ia-o/',
'https://website.new/ib-o/');
}
但它什么也没做。
如果有人能提供帮助 - 我将不胜感激!
第二部分: 更好的解决方案是,如果我可以像这样重新制作整个 link。
网页上的旧 link:https://website.new/ia-o/number1/number2/number3/number4.jpeg.html
页面上的新 link:https://website.new/o/number1/number2/number3/number4.jpeg
(因此从 link 中删除 ia- 和 .html)
但任何一种解决方案都可以!
谢谢!
替换当前页面中找到的所有链接中的 href 属性
// ==UserScript==
// @name website.new
// @namespace lii
// @description redirect to anothersite
// @include https://website.new/*
// @version 1
// @grant none
// ==/UserScript==
(function() {
for (var i=0,link; (link=document.links[i]); i++) {
link.href = link.href.replace('oldvalue', 'newvalue');
}
})();
你可以替换单个字母
link.href.replace('a', 'o');
或整个单词
link.href.replace('grease', 'tamper');
在您的特定情况下,只需将不需要的字符串替换为空字符串即可删除它们
link.href = link.href.replace(/ia-|\.html/g, '');
这与之前的回复类似,只是缩短了一点
// ==UserScript==
// @name website.new
// @namespace lii
// @description redirect to anothersite
// @include https://website.new/*
// @version 1
// @grant none
// ==/UserScript==
[...document.links].forEach(item => item.href = item.href.replace('oldvalue', 'newvalue'));