shooven.lye |
Nov 15, 2006 4:11:26 PM
这是鱼在Blogger classic里曾用过的一个Hack,个人认为非常实用。Thanks to singpolyma.
1.展开代码,紧跟</head>之前,添加下面代码。
<script type="text/javascript">
//<![CDATA[
var comment_form_template = '<div class="comment-poster">[[AUTHOR]]</div>\n'
+ '<div class="comment-body"><div class="innerCmntBody">[[BODY]]</div></div>\n'
+ '<div class="comment-timestamp">[a href=`[[PERMALINK]]` title=`[[DATE]]`]</div>\n';
//]]>
</script>
<script type='text/javascript'>
//<![CDATA[
function peekaboo_comments_display(data) {
var template = '';
function zeropad( n ){ return n>9 ? n : '0'+n; }
data.items.reverse();
for(i in data.items) {
if(!data.items[i].link) continue;
var tmp = data.items[i].link.split('#');
data.items[i].link = tmp.join('#c');
var dt = data.items[i].updated.match(/^(\d+)-(\d+)-(\d+)T(\d+):(\d+):(\d+)\.(\d+)([+-]\d+):(\d+)$/);
var time = new Date(parseInt(dt[1],10), parseInt(dt[2],10)-1 /*since January==0 in Date lingo*/, parseInt(dt[3],10), parseInt(dt[4],10), parseInt(dt[5],10), parseInt(dt[6],10), parseInt(dt[7],10)).getTime();
time = time + -(60*60*1000*parseInt(dt[8],10)) + -(60*1000*parseInt(dt[9],10));//adjust to GMT
time = time + -(60*1000*(new Date()).getTimezoneOffset());
time = new Date(time);
time = time.getFullYear() + '-' + zeropad(time.getMonth()+1) + '-' + zeropad(time.getDate()) + ' ' + zeropad(time.getHours()) + ':' + zeropad(time.getMinutes());
if(typeof(data.items[i].content) == 'undefined' || !data.items[i].content) data.items[i].content = data.items[i].summary;
var out = comment_form_template;
out = out.replace(/\[\[PERMALINK\]\]/,data.items[i].link);
out = out.replace(/\[\[DATE\]\]/,time);
out = out.replace(/\[\[AUTHOR\]\]/,data.items[i].author.name);
out = out.replace(/\[\[BODY\]\]/,data.items[i].content);
document.write(out);
}//end for i in data
}//end if function peekaboo_comments_display
//]]>
</script>
<script type="text/javascript">
function toggleitem(postid,linkid,newtxt,displaytype) {
if(!displaytype) {displaytype = 'block';}
var whichpost = document.getElementById(postid);
if (whichpost.style.display != "none") {
whichpost.style.display = "none";
} else {
whichpost.style.display = displaytype;
}
if(linkid) {
var lnk = document.getElementById(linkid);
lnk.href = "javascript:toggleitem('"+postid+"','"+linkid+"','"+lnk.innerHTML+"');";
lnk.innerHTML = newtxt;
}
}//end function toggleitem
</script>
2.找到
<b:loop values='data:post.comments' var='comment'>
<dt class='comment-author' expr:id='"comment-" + data:comment.id'>
紧跟它之前添加以下代码:
<b:loop values='data:post.feedLinks' var='f'>
<b:if cond='data:blog.pageType != "item"'>
<script expr:src='"http://xoxotools.ning.com/outlineconvert.php?output=json&amp;classes=items&amp;url=" + data:f.url + "&amp;callback=peekaboo_comments_display"' type='text/javascript'/>
</b:if>
</b:loop>
3.找到
<b:includable id='comments' var='post'>
<div class='comments' id='comments'>
将红色部分替换为下面部分:
<div class='comments' expr:id='"comments" + data:post.id'>
<b:if cond='data:blog.pageType != "item"'>
<script type='text/javascript'>
document.getElementById('comments<data:post.id/>').style.display = 'none';
</script>
</b:if>
4.找到
<b:if cond='data:blog.pageType == "item"'>
<b:if cond='data:post.allowComments'>
<b:include data='post' name='comments'/>
</b:if>
</b:if>
替换为:
<b:if cond='data:post.allowComments'>
<b:include data='post' name='comments'/>
</b:if>
5.找到
<b:if cond='data:post.allowComments'>
<a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><b:if cond='data:post.numComments == 1'>1 <data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a>
</b:if>
替换为:
<b:if cond='data:post.allowComments'>
<a class='comment-link' expr:href='data:post.url + "#comments"' expr:onclick='"toggleitem(&quot;comments" + data:post.id + "&quot;);return false;"'><b:if cond='data:post.numComments == 1'>1 <data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a>
</b:if>
最后保存模板。
Tag: Blogger Bloggerhack
Comment:
(no reply)