HaloScan
コメントが画像対応
デフォルトのテンプレートを使用している人は気付いていると思いますが、HaloScan
のコメントで画像をアップロードできるようになりました。その概要とカスタムテンプレートへ反映させる方法について述べます。
概要
私のように HaloScan のテンプレートをカスタマイズしていると新機能になかなか気付けません。そこで私は幾つか持っている HaloScan アカウントのうち一つはデフォルトのまま使用しています。そのアカウントのコメントを見て最近気付いたのですが、HaloScan コメントに画像を付けることができるようになりました。
百聞は一見にしかずなのでこのエントリのコメントに画像を一つ付けておきます。
直接画像がコメントに表示されるのではありません。アップロードした画像のリンクを a 要素を使って付けると、そのリンクの上にマウスを持ってくるとサムネイルがポップアプされるという仕組みになっています。アップロード先は ThumbSnap.com というフリーのイメージホスティングサービスです。ポップアップされるだけでなく実際にそのリンクを辿るとサムネイルではなく原寸大(?)の画像を表示できます。
アップロードできる画像には制限があります。FAQ のページ にも書いてありますが、現在のところ次のような画像をアップロードできます。
ファイルサイズが 2MB 以内。
ファイルの拡張子が ".jpg", ".jpeg", ".gif", ".png" の何れかで、その拡張子通りの画像フォーマット。
アップロードできる画像の数には制限はありません。またアカウントを取得したり何らかの支払いをする必要は全くありません。
カスタムテンプレートへの反映
デフォルトのテンプレートでなくともこの機能は使用できます。次のコードをカスタムテンプレートに入れてください。
画像アップロードフォームへのリンク
<_ a href="http://www.thumbsnap.com/?l=n" onclick="window.open('http://www.thumbsnap.com/?l=n','imgup','width=550,height=420,resizable=yes,scrollbars=yes'); return false;" title="Attach Image" target="_blank"><img src="/images/image_link.gif" style="vertical-align:middle;" height="16" width="16" alt="Attach Image" border="0" /></a>
画像ポップアップ
<div id="helper" style="display: none;position:absolute;background:#d7ecff;border:1px solid #97bde1;width:140px;padding:10px;text-align: center;font-size: 10px; font-weight: bold; font-family: Verdana, Tahoma, Arial, sans-serif;"> </div>
<script type="text/javascript"><!--
function helper(hid,text,e)
{
var posx = 0;
var posy = 0;
if(!e) var e = window.event;
if(e.pageX || e.pageY)
{
posx = e.pageX;
posy = e.pageY;
}
else if(e.clientX || e.clientY)
{
posx = e.clientX + document.documentElement.scrollLeft;
posy = e.clientY + document.documentElement.scrollTop;
}
var state = document.getElementById(hid).style.display;
if(document.getElementById)
{
if (state=="none")
{
state = "inline";
}
else
{
state = "none";
}
document.getElementById(hid).innerHTML=text;
document.getElementById(hid).style.top=(posy - 10) + "px";
document.getElementById(hid).style.left=(posx + 20) + "px";
document.getElementById(hid).style.display=state;
}
}
// --></script>
body 要素の一番後ろ(</body> の直前)辺りに入れるのがよいでしょう。{HSCommentStart} から {HSCommentEnd} など繰り返し部分の間に入れてはいけません。
どちらもオリジナルから若干変更してあります。変更の主旨は次のとおりです。
JavaScript が無効または利用できないブラウザでもアップロードフォームを表示できるように。
script 要素を理解しない携帯電話のブラウザのようなものでも JavaScript コードが露出しないように。
Posted: 22:52
|
Comment
|
Trackback
Trackback Ping URL(U)
以下、類似エントリです。
JavaScript が有効でないと類似エントリは表示できません。