プロが教える店舗&オフィスのセキュリティ対策術

Javascriptで、URLのパラメータを取得し、リンクにパラメータを渡したいです。

例えば、現在のURLが、
http://www.hoge.com/hoge.html?q=12345&pdf=downだとします。

そのページには、様々なリンクがありますが
特定のリンクにのみ、下記のようにパラメータを追加したいです。
http://www.hoge.com/test.pdf

http://www.hoge.com/test.pdf?q=12345&pdf=down


検索した際に近そうなサンプルなどありましたが、
こちらは使えそうでしょうか。
<!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 onLoad() {
param = GetQueryString();
target = document.getElementById("param");
target.innerHTML = param["q"];
}

function GetQueryString() {
if (1 < document.location.search.length) {
// 最初の1文字 (?記号) を除いた文字列を取得する
var query = document.location.search.substring(1);

// クエリの区切り記号 (&) で文字列を配列に分割する
var parameters = query.split('&');

var result = new Object();
for (var i = 0; i < parameters.length; i++) {
// パラメータ名とパラメータ値に分割する
var element = parameters[i].split('=');

var paramName = decodeURIComponent(element[0]);
var paramValue = decodeURIComponent(element[1]);

// パラメータ名をキーとして連想配列に追加する
result[paramName] = decodeURIComponent(paramValue);
}
return result;
}
return null;
}
</script>
</head>
<body>
<div>テスト</div>
<div id="param"></div>
<a href="test.pdf">PDFダウンロード</a>
</body>
</html>

元コードは下記サイトのものです。
http://www.ipentec.com/document/document.aspx?pa …


どうぞよろしくお願いいたします。

A 回答 (1件)

特定のリンク


<a href="test.pdf" class="特定のリンク">PDF</a>

特定のリンクにのみ、現URLのパラメーターを追加
var search = document.location.search;
var targets = document.querySelectorAll('a.特定のリンク');
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;
}

もし、現URLのパラメーターのうち 'q' と 'pdf' のみ追加したいなら、
関数 GetQueryString の戻り値から、変数 search を生成してください。
    • good
    • 0
この回答へのお礼

ご回答頂いてありがとうございます!
教えて頂いたコードを組み込んで、実行することができました。
本当にありがとうございます。

以下組み込んだコード。
<!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 onLoad() {
param = GetQueryString();
target = document.getElementById("param");
target.innerHTML = param["q"];
}

function GetQueryString() {
var search = document.location.search;
var targets = document.querySelectorAll('a.coupon_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>
<div id="param"></div>
<a class="coupon_code" href="test.pdf">クーポン発行をする</a>
</body>
</html>

お礼日時:2015/05/11 09:43

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