2008年3月15日

Safari で REFERER を削除する Javascript

普通のブラウザでリンクを辿ると、前のページのURIが次のページのリクエストにHTTP_REFERER として通知される。 Firefox / IE / Opera などのブラウザは拡張なりを入れれば、設定としてreferer を送らないことが出来る。 また referer を削除するプロクシ経由でアクセスする方法もある。ただ、プロクシとは大げさな気がする。

私が常用している Safari では、ブラウザの設定として、referer を削除する機能はついてない気がする。

だらグル(だらだらGoogleで検索)してたら、良い情報があったので、ちょっと組み立ててみた。

全部のリンクのリファーラを抑制するのでなく、class属性が external になっているリンクのみに限定にしてみた。 ソースをちょっとだけ書き換えればリファーラ抑制の条件は変えられる。

cutreferer.js

...
<script type="text/javascript" src="cutreferer.js"></script>
...
<a href="http://external.link" class="external">外部リンク</a>
...

Safari 2/Firefox 2/ IE6 で動作する。ただし Safari 2 のみブラウザ履歴のリストにゴミが残ってしまう。

Lightbox JS の効果を見て、HTMLソースにものすごい埋め込みとかが必要かと思ったが、属性一つだけなのをみて、ちょっと衝撃的だった、、、ので思いついてみた、、、。

参考

  1. リファラ実験
  2. referrerを空にするリンクの作成方法
  3. REFERRERを消して外部ページに移動する
  4. isMSIE
  5. Lightbox JS

Greasemonkey とか GreaseKit 使えるともっと面白いかも

0 件のコメント: