我想将网址从“http://example.com/products/description/product123/index.html”更改为“http://example.com/f123456/products/description/product123/index。 HTML”。 对于来自特定站点(只有一个)的每个链接,我需要像在示例中那样更改,在链接的基础之后添加代码,之后继续使用普通链接。
更具体地说,这是我想用我的脚本修改的链接:http://www.f64.ro/对于每个链接,产品等都是http://www.f64.ro/f444618/。
我尝试了一些我找到的东西,但它不起作用,我不知道出了什么问题。
// ==UserScript==
// @name F64.ro
// @include http://www.f64.ro/*
// ==/UserScript==
var targID = "f444618/";
var targLink = document.querySelector ("#" + targID);
targLink.href += targID + "\/";
谢谢!
答案 0 :(得分:6)
stackoverflow上有类似的问题,例如How can you replace a link's target in Greasemonkey?。
基于此,这是一个示例,它将此站点上指向stackoverflow.com的所有链接修改为www.stackoverflow.com。
// ==UserScript==
// @name changeurl test
// @namespace https://stackoverflow.com/
// @description test for https://stackoverflow.com/q/10267423/33499
// @include https://stackoverflow.com/*
// ==/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://stackoverflow.com/',
'http://www.stackoverflow.com/');
}
答案 1 :(得分:3)
如果是固定数字
// ==UserScript==
// @name TESTE 2
// @namespace TESTE 2
// @description TESTE 2
// @include http*://*stackoverflow*
// ==/UserScript==
for (var i=0,link; (link=document.links[i]); i++) {
linkID = '/f444618'
link.href = link.href.replace(location.hostname, location.hostname+linkID);
}
如果号码从链接更改为链接,只需获取当前链接的ID并替换linkID = 'f444618'