プロが教えるわが家の防犯対策術!

先日質問させていただいて一度は解決したのですが、
さらに別要素が加わってしまい再投稿となりました。

javascriptの質問です。URLからパラメータを取得し
ページ内にあるクラスが付いたリンクへ後付したいと思います。

現在は、パラメータ部分全部がリンクへ後付してしまっており
?url=http://www.t.com/x.pdfは削除して、?yy=123&pdf=dw だけ
リンクに後付したいと思います。

■取得元URL例
http://www.a.com/a.html?url=http://www.t.com/x.p …

■リンク後付に欲しい部分
?yy=123&pdf=dw

★結果、こうなって欲しいリンクアドレス
http://www.aaa.com/aaa.pdf?yy=123&pdf=dw


現在以下の形になっており、class名[code]が付いたリンクタグの
hrefアドレスに後付する形になっております。

どうぞお力添えいただけないでしょうか。
よろしくお願いします。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript">
window.onload = function GetQueryString() {
var search = document.location.search;
var targets = document.querySelectorAll('a.code');
for (var i = 0; i < targets.length; i++) {
var target = targets[i];
var url = target.href;
url = url.replace(/\?.*$/,'');
url += search; // 現URLのパラメータ
target.href = url;
}
}
</script>
</head>
<body>
<div>パラメーター</div>
<a class="code" href="http://www.aaa.com/aaa.pdf">コード発行</a>
</body>
</html>

A 回答 (1件)

こんなかんじで如何でしょうか?



var src = 'http://www.a.com/a.html?url=http://www.t.com/x.p …
var target = 'http://www.aaa.com/aaa.pdf';

var palam;
var palams = src.match(/\?[^\?]+/g); // ?で始まる文字列(=パラメータ)を配列palamsに入れる

for(i=0; i<palams.length; i++){ // 見つかったパラメータの中で
if(/^\?yy=/.test(palams[i])){ // '?yy='で始まるパラメータをpalamにいれる
palam = palams[i];
break;
}
}
target += palam;
    • good
    • 0
この回答へのお礼

お礼が大変遅くなりもうしわけございません。
教えて頂いた通りバッチリでした!大変助かりました><

本当にありがとうございます!

お礼日時:2015/05/18 20:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!