どこでもブログ拍手

FC2ブログ拍手は、表示場所がある程度限定されてしまっているので、
これを無理矢理どうにかしてしまおうというJavaScript


とりあえず表示関数本体。

<!-- ******** ブログ拍手どこでも表示スクリプト ********* -->
<!--
ブログ拍手をどこでも設置出来る様にしたスクリプト
エントリー(記事)ひとつをdivで囲んでIDを指定して、
showBlogClap()をそのIDで呼びます。
-->

<script language="javascript">
<!--
function showBlogClap(entryId) {
var entry = document.getElementById(entryId);
var ele = entry.getElementsByTagName("div");

var i = 0;
for (i = 0; i < ele.length; ++i) {
var className = ele[i].getAttribute("class");
if (className == null) className =
ele[i].getAttribute("className"); // IE
if (className == "fc2_footer") {
ele[i].style.display = "none";
document.write(ele[i].innerHTML);
break;
}
}
}
//-->
</script>
コメントにある通り、エントリーをdivタグで囲んで、
IDを指定する。ブログ拍手を設置したい箇所で、
そのIDを指定してshowBlogClap()を呼ぶ。


showBlogClap()は、指定のIDのdivタグを探して、更にその中にある
"fc2_footer"というクラスの、ブログ拍手のHTMLが書いてあるdivタグを探す。
タグのクラス名取得は火狐とIEで異なるので注意。
見つかったら、そのタグは非表示に指定して、全く同じ内容のHTMLを
showBlogClap()が呼ばれた位置に書き込むという仕組み。


エントリーのテンプレートでは、↓の様な感じで囲って、showBlogClap()を書く。

<!--エントリー-->

<!--topentry-->

<h3><a id="<%topentry_no>" name="<%topentry_no>"><%topentry_title>
</a></h3>
<div class="body" id="entry<%topentry_no>"><%topentry_body>

省略

<!-- **** 拍手 **** -->
<br>
<script language="javascript">
<!--
showBlogClap("entry<%topentry_no>");
//-->
</script>

省略

</div>


自分のブログで出来るように作っただけなので、
他のブログだと不具合が出るかも。
その場合は適当に改修してくださいませ〜(´∀`)