我有一个包含大量条目的 HTML 页面,如下所示:
<a href="https://www.example.co.uk/gp/wine/product?ie=UTF8&asin=123456789&tab=UK_Default" class="PrmryBtnMed"
我想替换所有这些链接,因此它们是:
https://www.example.co.uk/gp/wine/order?ie=UTF8&asin=1233456789
所以,这是一个相当复杂的搜索和替换。这些是针对人类的说明:
- 查看网址。仅记下“asin=”后面的数字。 (忘记之前的一切和之后的一切)
- 然后,使用此 ASIN 形成一个新网址。它总是这样开始:
https://www.example.co.uk/gp/wine/order?ie=UTF8&asin=
将数字粘在末尾形成:
https://www.example.co.uk/gp/wine/order?ie=UTF8&asin=123456789
请注意
- 除了修改现有按钮之外,还可以在原始按钮附近添加新按钮[或链接]
- 原始链接和新链接均指向同一域
- 我在名为 FluidApp 的 SSB 上使用 Greasekit,但我可以在 FireFox 上切换到 Greasemonkey。
我刚刚观看了 40 个 JavaScript 教程视频 - 天哪,这门语言太难了!这看起来极其困难。我将非常感谢任何帮助/指示。
最佳答案
像这样的东西可能会起作用:
// the new base url
var base = ' https://www.example.co.uk/gp/wine/order?ie=UTF8&asin=';
// all the links with className 'PrmryBtnMed'
var links = document.getElementsByTagName('a');
for(var i = 0;i < links.length;i++){
// check each link for the 'asin' value
var result = /asin=([\d\w]+)/.exec(links[i].getAttribute('href'));
if(result){
// make a new url using the 'base' and the 'asin' value
links[i].setAttribute('href', base+result[1]);
}
}
关于javascript - 根据一组规则即时修改链接 (Greasekit/Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16079410/