javascript - 根据一组规则即时修改链接 (Greasekit/Javascript)

标签 javascript greasemonkey greasekit fluid-mac-app-engine

我有一个包含大量条目的 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 形成一个新网址。它总是这样开始: 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]);
    }
}

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

关于javascript - 根据一组规则即时修改链接 (Greasekit/Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16079410/

相关文章:

javascript - 无法获取 JSON 响应项

javascript - 如何制作类似 GreaseMonkey 的脚本以在下三分之一处显示不同的页面?

javascript - 插入带有来自另一个链接的文本的链接 Greymonkey

javascript - Greasemonkey 按钮点击

javascript - 我怎样才能改进这个Javascript代码,让它忽略图像中的链接

javascript - 使用类似 Greasemonkey 的脚本自动选择每页项目(下拉菜单)

Javascript 仅适用于 jQuery mobile 中的页面刷新

javascript - 将鼠标悬停在导航栏中的链接上时如何使网页的其余部分变暗

javascript - React-Redux 将 google Places api 变成了 promise

javascript - 使用 greasemonkey 脚本自动化 flash 应用程序