1

我有一个包含大量条目的 HTML 页面,如下所示:

<a href="https://www.example.co.uk/gp/wine/product?ie=UTF8&amp;asin=123456789&amp;tab=UK_Default" class="PrmryBtnMed"

我想替换所有这些链接,所以它们是:

https://www.example.co.uk/gp/wine/order?ie=UTF8&asin=1233456789

所以,这是一个相当复杂的搜索和替换。这些是人类的指令:

  1. 看网址。只记下“asin=”后面的数字。(忘记之前的一切和之后的一切)
  2. 然后,使用此 ASIN 形成一个新 URL。它总是这样开始: 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 教程视频——这门语言很难!这似乎极其困难。我将非常感谢任何帮助/指针。

4

1 回答 1

1

像这样的东西可能会起作用:

// 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]);
    }
}

演示:http: //jsfiddle.net/louisbros/L8ePL/

于 2013-04-18T10:14:16.737 回答