用于修改greasemonkey中的URL的脚本

时间:2015-05-30 00:17:11

标签: greasemonkey

我正在尝试更改以下网址:

http://www.example.net/?image=full&action=view&imageid=1361 

http://www.anothersite.com/download&id=1361&thumb=0

同时保留id(示例中为1361

(将'example.net/?image=full&action=view&image'更改为'anothersite.com/download&'并在网址末尾添加'& thumb = 0')

如何为此编写GreaseMonkey脚本?

PS。我已经用Google搜索并复制了下面的代码。它的工作正常,但问题是它还将'& thumb = 0'添加到另一个链接(不仅仅是'替换'链接)

// ==UserScript==
// @name        whatever
// @namespace   lii
// @description redirect to anothersite
// @include     http://www.example.net/?image=full&action=view*
// @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('http://www.example.net/?image=full&action=view&image',
                                          'http://www.anothersite.com/download&')  + "&thumb=0";

}

1 个答案:

答案 0 :(得分:0)

试试这个:

thisLink.href = thisLink.href.replace(RegExp('http://www\\.example\\.net/\\?image=full&action=view&image(.*)'),
                                      'http://www.anothersite.com/download&$1&thumb=0');

它应用正则表达式来匹配URL并提取id并将其作为$1插入到结果字符串中。

MDN的更多信息。