0

たとえば、私はこれを変更しようとしています:

<a href="javascript: void(null)" class="jv-redirectCandidate" 
    key="pcxe7gwP"
>Some Name</a>

これに:

<a href="https://www.foo.com/something.aspx?p=pcxe7gwP">Some Name</a>

現在の一部である文字列「pcxe7gwP」が必要です

key="pcxe7gwp"

そして、それをURLの一部に添付したい

https://www.foo.com/something.aspx?p=

そして、href現在の代わりにそれを使用する

"javascript: void(null)"

私は Tampermonkey Chrome 拡張機能を使用しており、これを実現するためのユーザースクリプトを作成しようとしています。私はユーザースクリプトが初めてで、何か助けていただければ幸いです。ありがとう!

4

3 に答える 3

0

私が正しく理解していれば、これはあなたが探しているものです:

<html>
<script type="text/javascript">
function changeHREF(element){
    element.href = "https://www.foo.com/something.aspx?p=" + element.key;
}
</script>
<body>
<a href="#" onclick="javascript:changeHREF(this);" class="jv-redirectCandidate" key="pcxe7gwP" id="myId">Some Name</a>
</body></html>

別の可能な解決策:

<html>
<script type="text/javascript">
function changeHREF(){
    elements = document.getElementsByClassName("jv-redirectCandidate");
    for(i = 0; i<elements.length; i++) {
        elements[i].href = "https://www.foo.com/something.aspx?p=" + elements[i].getAttribute("key");
    }
}
</script>
<body onload="javascript:changeHREF()">
<a href="javascript:void(null);" class="jv-redirectCandidate" key="pcxe7gwP">Some Name</a>
</body></html>

まあ、同じ結果を達成するための他の解決策があります。でも、それは論外だと思います。

乾杯

于 2013-04-21T06:21:48.060 に答える
0

Greasemonkey でテストします。jquery は必要ありません。

// ==UserScript==
// @name        Change link href with it's key
// @namespace   test
// @grant       none
// @version     1
// @include     http://localhost:8000/*.html
// ==/UserScript==

var prefix = 'https://www.foo.com/something.aspx?p=';
var links = document.querySelectorAll('a.jv-redirectCandidate[key]');
for (var i = 0; i < links.length; i += 1) {
    var link = links[i];
    link.href = prefix + link.getAttribute('key');
}
于 2013-04-22T05:05:09.953 に答える
0

以下は、 Tampermonkey または Greasemonkey で動作する完全なスクリプトです。使いやすさとパワーのためにjQueryを使用します。

// ==UserScript==
// @name     _De-javascript links
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @grant    GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/
//-- Get links with the class "jv-redirectCandidate".
var linksToFix = $("a.jv-redirectCandidate");

//-- Loop through the links
linksToFix.each ( function () {
    var jThis   = $(this);  //-- An individual link
    var key     = jThis.attr ("key");

    jThis.attr ("href", "https://www.foo.com/something.aspx?p=" + key);
} );
于 2013-04-21T06:46:12.230 に答える