讓 Blogger 的意見回應可以有回覆

新方法改起來比較容易囉,見 新文章(2010/12/23)。下面是舊方法,忘記它吧。


Blogger 中的張點的意見(回應)都沒有「作者回覆」的功能,剛剛 hack 一下... 終於有了。
曾看過其他解決方案,但要申請第三方留言版來外掛。
我的方法不用另外申請,直使用 Blogger 資料庫。



版面配置 → 修改 HTML → 勾「展開小裝置範本」
「下載完整範本」後,用習慣的編輯器來改。

修改後再上傳。最好是能把最原始範本保留一份起來,免得改錯了來找我。
注意,每個人的 Template 或許不同。紅色為新增部份。
<script type='text/javascript'>
function authorReply(CID) {
var strBody = document.getElementById(CID).innerHTML.replace(/Re:\s*.+\s*&amp;lt;(\d+)&amp;gt;\s*&lt;BR\/?&gt;/i,&#39;&#39;);
var strOut = &quot;<div style='background-color: bisque; padding: 4px'><b>作者回覆</b>&#65306;<br/>&quot;+strBody+&#39;</div><p/>&#39;;
if(RegExp.$1)
document.getElementById(&#39;RID&#39;+RegExp.$1).innerHTML = strOut;
else
document.write(strOut);
}

function replyEmbedComment(CN,CID) {
var url = document.getElementById(&#39;comment-editor-src&#39;).href.replace(/-iframe/,'');
url += &quot;&amp;postBody=Re:+&quot;+escape(CN)+&quot;+&lt;&quot;+CID+&quot;&gt;%0D%0A&quot;;
location.href = url;
}
</script>

<dl id='comments-block'>
<b:loop values='data:post.comments' var='comment'>

 <b:if cond='data:comment.author == data:post.author'>
 <div expr:id='&quot;CID&quot; + data:comment.id' style='display:none'><data:comment.body/> <span style='font: 7pt Arial; color:#8a8a8a'>(<data:comment.timestamp/>)</span>
<b:include data='comment' name='commentDeleteIcon'/>
</div>
<script type='text/javascript'>
authorReply(&quot;CID<data:comment.id/>&quot;);
</script>
<b:else/>
  <dt expr:class='&quot;comment-author &quot; + data:comment.authorClass' expr:id='data:comment.anchorName'>
<a expr:name='data:comment.anchorName'/>
<b:if cond='data:comment.authorUrl'>
<a expr:href='data:comment.authorUrl' rel='nofollow'><data:comment.author/></a>
<b:else/>
<data:comment.author/>
</b:if>
<data:commentPostedByMsg/>
</dt>
<dd class='comment-body'>
<b:if cond='data:comment.isDeleted'>
<span class='deleted-comment'><data:comment.body/></span>
<b:else/>
<p><data:comment.body/></p>
</b:if>
</dd>
<dd class='comment-footer'>
<span class='comment-timestamp'>
<a expr:href='data:comment.url' title='comment permalink'>
<data:comment.timestamp/>
</a>
<b:include data='comment' name='commentDeleteIcon'/>







<span expr:class='&quot;item-control &quot; + data:comment.adminClass'>
<b:if cond='data:post.embedCommentForm'>
<a href='#comment-form' expr:onclick='&quot;replyEmbedComment(\&quot;&quot; + data:comment.author + &quot;\&quot;,\&quot;&quot; + data:comment.id + &quot;\&quot;)&quot;' style='font: 9pt Arial; color:#8a8a8a'>回</a>
<b:else/>
<b:if cond='data:post.allowComments'>
<a expr:href='data:post.addCommentUrl + &quot;&amp;postBody=Re%3A%20&quot; + data:comment.author + &quot;%20%3C&quot; + data:comment.id + &quot;%3E%0D%0A&quot;' expr:onclick='data:post.addCommentOnclick' style='font: 9pt Arial; color:#8a8a8a'>回</a>
</b:if>
</b:if>
</span>










</span>
</dd>
  <dd class='comment-reply'>
<span expr:id='&quot;RID&quot; + data:comment.id'/>
</dd>
</b:if>

</b:loop>
</dl>







完成之後....
在使用者登入的情況下在每篇「意見」後面都會多一個「回」字。用力點下去就對了!






寫回覆內容時,自動出現的第一行要留起來唷。不然就會變成普通留言。