http://exam.com/user.html?id=1234みたいな感じでアクセスしたとします。http://exam.com/user.html内のすべてのリンクの語尾に1234のidを付与させるやり方を教えてください。

例)http://exam.com/faq.html?id=1234

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:takuya32 No.1

回答回数18ベストアンサー獲得回数0

ハイパーリンクでURLの語尾に?をつけることですか?これってポータルサイトとかでやる目印だとおもいますよ

id:jouno No.2

回答回数280ベストアンサー獲得回数0

ポイント30pt

javascriptを閲覧者が有効にしていれば、ページの最後に以下のコードをはりつけることで可能です。

ただし、本当に、すべての、リンクに付与されます。


<script>

<!--

var n = document.links.length;

var id = location.search;

//この行でid=の形式のときだけに限定。

if (id.match(/¥?id=.+/i)) {

for(i = 0; i < n; i++){

document.links[i].search = id;

}

//上のコメントの対応する括弧。

}

//-->

</script>

id:english No.3

回答回数304ベストアンサー獲得回数0

ポイント40pt

http://www.parkcity.ne.jp/~chaichan/src/javasc13.htm

このサイトは移動しました

Javascriptによって実現可能です。


<script type=”text/javascript”>

<!--

function transURL(){

var param = location.search;

var url = ””;

for(var i=0;i<document.links.length;i++){

url = document.links[i].href;

if(url.indexOf(”?”) != -1){

//変更されるリンクのURLに「?」が既にあるなら、自動

//付加するパラメータは「&~」にします。

param = param.replace(/¥?/,”&”);

}

document.links[i].href = url + param;

}

}

//-->

</script>


を<head>と</head>の間に入れます。


また、Bodyタグに

<BODY BGCOLOR=”#ffffff” onLoad=”transURL();”>


のように「onLoad=~」を追加します。


これにより、一度ページロード後、全てのリンク先のURLの末尾にパラメータが自動付与されます。


※なお、hatenaのシステムの都合により、ダブルクォテーションが全角文字に変換されているかもしれませんが、適宜半角に変更して読み替えてください。


document.linksオブジェクトの活用とlocation.searchの処理がポイントかと思います。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません