blog/2005-07-08
さて、もう気づいている方も多いと思うが、へぇボタンを性懲りもなくまた付けてみた。今回は、JavaScriptで生成している。
で考えたJavaScriptがこれ。
function vote_he(url,author,title){ var str = ("( ・∀・)つ〃∩ ヘェーヘェーヘェー"); str += ( '<a href="http://vote.chbox.com/he.jsp?' + 'enc=4&' + 'id=' + title + '&' + 'by=' + author + '&' + 'gr=Wiki&' + '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>');
で、スキン側では
<?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の文字化けも解消されるハズ。早速テストしてみたが・・・。
○| ̄|_
日本語が含まれるアドレスでは、相変わらず文字化け。もちろんアドレスも無効なものとなってしまう。したらばでは、一時期勝手にURLの文字までエンコードしてしまうところがあったが、これと同じような現象がちゃぶろで起きているらしい。EUCでやる場合は何ともなかったが、去年の10月試行したUTF-8化によってどうしようもなくなっている。
そうなると、解決策は一つしかない。リンク用に別のアドレスを用意することである。考えられる方法は、やっぱりTrackBackのコードで使われているハッシュだ。これで、http://設置URL/?cmd=jump&hush=E89197E4BD9CE6A8A9E8A1A8E8A898みたいな感じのURLを送り来るときはそのアドレスからジャンプさせればいいわけだ