- 締切済み
javascriptの勉強中しはじめたばかりでわからないとこがあったの
javascriptの勉強中しはじめたばかりでわからないとこがあったのでご教授ください。 まずあるホームページA(URL:http://192.168.1.110)からホームページBに飛びます。 ホームページBにはimgがあり、そのimg(飛び先URL:http://192.168.1.111)を押すとクリックURLにリファラ(ホームページAのURL)を付与(例:http://192.168.1.111?ref=http://192.168.1.110)して、 次のページへいくのにはどのようにすればいいか教えてください。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
リファラを別のページにパラメータとしてわたすということは サーバー側でパラメータを利用することを想定していますよね? で、あればリファラをセッションで次のページに渡してやるのが妥当でしょう。 なおjavascriptでわたすならencodeURIComponent()などでurl用のエンコードを かけてやらないと思った通りにデータがとおらないかもしれませんね
- yyr446
- ベストアンサー率65% (870/1330)
失礼、imgの飛び先はホームページBじゃないんですね。 function urlset(e){ var target = e?e.target:event.srcElement; if(target.id == "http://192.168.1.111/"){ var url=""; target.parentNode.href=encodeURI(url+"?ref="+document.referrer); } } ですね、それと<a>は↓みたくしておきます。 <a href="javascript:Void(0);"><img id="hoge" src="hoge.img" alt="hogeへリンク"></a>
- yyr446
- ベストアンサー率65% (870/1330)
いつも、ホームページAから飛んでくると限らないなら、 javascriptを使って <script type="text/javascript"> if('undefined' != typeof document.addEventListener) document.addEventListener('click',function(event){urlset(event);},false); else if('undefined' != typeof document.attachEvent) document.attachEvent('onclick',function(event){urlset(event);}); function urlset(e){ var target = e?e.target:event.srcElement; if(target.id == "hoge"){ target.parentNode.href=encodeURI(location.href+"?ref="+document.referrer); } } </script> でどうでしょうか (全角空白は半角空白にしてください)
- fujillin
- ベストアンサー率61% (1594/2576)
javascriptを使用しなくても <a href="ttp://192.168.1.111?ref=ttp://192.168.1.110"><img src="○○" alt="××"></a> みたいにしておくことでもいけるのでは? HTMLのhref記述は通常のままでjavascriptで処理をするのなら、 ページ全体のクリックを監視して、対象とするリンク要素だったらクエリ部分を追加してジャンプする。 あるいは、 ページロード時に、対象とするリンク要素のhref部分を(↑)のようにクエリ付きに書き換えておく ことでもできそうですね。 使用するurlがどのようなものか不明ですが、実際にはURIエンコードしておく必要がありそう。
お礼
ありがとうございます。 勉強になります。
補足
返答ありがとうございます。 よかったらですが、外部javascriptの書き方も是非教えていただきたいです。