blog/2010-12-12


Total: 2825 / Today: 1 / Yesterday: 1

HTML5のrel=norefererのサポート方法

最近なぜか、Assemblaに繋がらない。というわけで、PukiWikiAdv.の更新ができない状態。そんななか、こんなスクリプトを作ってみた。

リファラーは、IEの場合location.hrefで、それ以外の場合Data SchemeでMetaタグリダイレクトページをクライアント側でつくることで、消すことができる。なお、HTML5では、rel属性にnorefererを入れることでリファラーをリンク先に残さないという仕様が加えられているため、これをJavaScriptで実装してみることにした。

$(document).ready(function(){
	// aタグで、relにnorefererが含まれるリンクをクリックしたときに起きる処理をオーバーライド
	$('a[rel*=noreferer]').click(function () {
		// aタグのhref属性を取得
		var uri = $(this).attr('href');
		if(navigator.userAgent.indexOf("MSIE")!==-1){
			// IEの場合、location.replaeでリファラー消えるからいいや
			location.href = uri;

たったこれだけ。あとは、rel="noreferer"を加えるだけ。ちなみに、relはclassのように複数指定可能なので、rel="nofollow norefferer"でもHTML的に間違っていない。ちなみに、Google Chromeだと標準でサポートされているぞ。(たぶんSafariも)

よく良く考えてみると、dataスキーマって怖いな。URLで許可されている字数以内なら悪意を持ったプログラムとかも作れるしなぁ。gzip圧縮とか組み合わせればバレにくいかも。


Last Modified: 2010-12-12 22:48:53