#navi(blog)
*へぇボタンふたたび・・・
さて、もう気づいている方も多いと思うが、へぇボタンを性懲りもなくまた付けてみた。今回は、JavaScriptで生成している。[[pukiwiki.org:自作プラグイン/vote_he.inc.php]]では、名前が一律PukiWikiになってしまうという理由もあるが、何もphpでやらせる必要性もないし、基本的に全部のページで表示させるようなものなので、JavaScriptでこのボタンを生成すればいいなと思った。

で考えたJavaScriptがこれ。
#code(javascript){{
function vote_he(url,author,title){
	var str = ("( ・∀・)つ〃∩ ヘェーヘェーヘェー");
	str += (
		'<a href="http://vote.chbox.com/he.jsp?' +
		'enc=4&amp;' +
		'id=' + title + '&amp;' +
		'by=' + author + '&amp;' +
		'gr=Wiki&amp;' +
		'url=' + url + '" ' +
		'onclick="window.open(this.href);return false;">' +
		'<img src="' + ImagePath + 'he.gif" width="24" height="18" alt="へぇ~" title="へぇ~" /></a>'
	);
	document.write('<div id="vote_he" style="text-align:center">' + str + '</div>');
}
}}
で、スキン側では
#code(php){{
<?php if (arg_check('read') && exist_plugin_convert('menu')) { ?>
<?php echo $hr ?>
<!-- * Vote he *-->
<script type="text/javascript">vote_he("<?php echo $_LINK['reload']; ?>","<?php echo $page_title; ?>","<?php echo $title; ?>");</script>
<!--  End he -->
<?php } ?>
}}
と入れた。元々定義されている関数を呼び出しているだけなので、たいした負荷にはならないだろう。これで、リロード先のURLがちゃんねるBOXに渡されるアドレスになり、日本語URLの文字化けも解消されるハズ。早速テストしてみたが・・・。
#ref(050708_01.png,nolink)
○| ̄|_

日本語が含まれるアドレスでは、相変わらず文字化け。もちろんアドレスも無効なものとなってしまう。したらばでは、一時期勝手にURLの文字までエンコードしてしまうところがあったが、これと同じような現象がちゃぶろで起きているらしい。EUCでやる場合は何ともなかったが、去年の10月試行したUTF-8化によってどうしようもなくなっている。

そうなると、解決策は一つしかない。リンク用に別のアドレスを用意することである。考えられる方法は、やっぱりTrackBackのコードで使われているハッシュだ。これで、http://設置URL/?cmd=jump&hush=E89197E4BD9CE6A8A9E8A1A8E8A898みたいな感じのURLを送り来るときはそのアドレスからジャンプさせればいいわけだ。