3

URLを「http://example.com/products/description/product123/index.html」から「http://example.com/f123456/products/description/product123/index.html」に変更したいと思います。特定のサイト (1 つだけ) からのリンクごとに、例のように変更して、リンクのベースの後にコードを追加し、その後で通常のリンクを続行する必要があります。

より具体的に言うと、スクリプトで変更したいリンクは次のとおりです .

見つけたものを試しましたが、機能せず、何が問題なのかわかりません。

    // ==UserScript==
    // @name     F64.ro
    // @include  http://www.f64.ro/*
    // ==/UserScript==

    var targID      = "f444618/";
    var targLink    = document.querySelector ("#" + targID);
    targLink.href  += targID + "\/";

ありがとうございました!

4

2 に答える 2

7

同様の質問がstackoverflowにもあります。たとえば、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/');
}
于 2012-04-22T12:47:14.760 に答える
4

固定数なら

// ==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'

于 2012-04-23T17:38:09.420 に答える