Đăng bởi: CTG blog
Thứ Năm, tháng 7 14, 2011
[34]
Thủ thuật: Chèn Emoticons vào comment
Nguồn: duypham



Giới thiệu: Khung Đăng Nhận xét của blogspot là một trang riêng được chèn vào blog thông qua thẻ iframe, và Google không cho ta quyền can thiệp vào khung “Đăng nhận xét” này. Đó là lý do mà không đưa được bộ gõ riêng cũng như emoticons vào khung “Đăng nhận xét”.

Với bộ gõ thì dường như không thể, cho đến khi nào Google tích hợp thêm vào. Còn với Emoticons thì thật may là có hàm replace, sử dụng hàm này để thay đổi ký tự thành hình ảnh. Và như thế Blogspot đã có Emoticons, cho dù việc nhập Emoticons vẫn không thể theo kiểu click.

Đặc biệt: Hiển thị tốt trên cả IE (Internet Explorer).


CÁCH THỰC HIỆN

1. Đăng nhập Blogger
2. Chọn: Mẫu > Chỉnh sữa HTML

3. Chèn script.

Bước 1: Tìm thẻ đóng </body>

- Thêm vào trước nó đoạn code sau:

<!-- Emotion comment (1) -->
<script type='text/javascript'>
//<![CDATA[
function replaceText(){if(!document.getElementById){return;}
bodyText = document.getElementById("emocomments");
theText = bodyText.innerHTML;

theText = theText.replace(/KÍTỰ.1/gi, "<img src='LINK_HÌNH'/>");
theText = theText.replace(/KÍTỰ.2/gi, "<img src='LINK_HÌNH'/>");
...
theText = theText.replace(/KÍTỰ.N/gi, "<img src='LINK_HÌNH'/>");

bodyText.innerHTML = theText;
}replaceText();
//]]>
</script>

KÍTỰ // Đặt kí tự tắt cho Emoticon. Ví dụ như: :cuoi, :) , :D ,…
LINK_HÌNH // Thay Link hình Emoticon của bạn vào đây.

Với ký tự đặc biệt như [ ] { } \ / ( ) . ? + ^ $ : thì phải thêm kí tự \ trước nó.
Với ký tự < : Phải đổi thành &lt;
Với ký tự > : Phải đổi thành &gt;
Với ký tự & : Phải đổi thành &amp;

Ví dụ:

:))     thành  :\)\)
:-/     thành  :-\/
>:D<  thành  &gt;:D&lt;

Với những ký tự tắt bao gồm như nhau như :)):)
Thì bạn phải đặt :)) lên trước dòng :)

Nếu không làm vậy thì chỉ ký tự ít hơn được hiện lên. Và không hiện được kí tự kia.


Bước 2: Tìm dòng <b:loop values='data:post.comments' var='comment'>

- Thêm vào trước nó thẻ <div id='emocomments'>

- Tìm tiếp ở đoạn code này thẻ đóng </b:loop>

- Thêm vào sau nó thẻ đóng </div>


Bước 3: Bước này là để hiển thị khung hình Emoticon ở khung nhận xét.

- Tìm đến thẻ <data:blogTeamBlogMessage/>

- Đôi khi có tên là <data:blogCommentMessage/>

- Thêm vào sau nó đoạn code sau:

<!-- Emotion comment (2)-->
<script type="text/javascript"> 
//<![CDATA[
function moreSmilies() {
document.getElementById('smiley-more').style.display = 'inline';
document.getElementById('smiley-toggle').innerHTML = '<a href="javascript:lessSmilies()">                    Thu gọn </a></span>';
}
function lessSmilies() {
document.getElementById('smiley-more').style.display = 'none';
document.getElementById('smiley-toggle').innerHTML = '<a href="javascript:moreSmilies()">                    Xem thêm </a>';
}
//]]>
</script>


<!-- Dòng hiện vài Emoticon mẫu khi chưa bấm “Xem thêm” -->
<div class='emoticons'>
<img src='LINK_HÌNH' title='CHÚ-THÍCH_KÍTỰ'/> 
<img src='LINK_HÌNH' title='CHÚ-THÍCH_KÍTỰ'/> 
...
<img src='LINK_HÌNH' title='CHÚ-THÍCH_KÍTỰ'/> 


<!-- Khung hiện đầy đủ các Emoticons khi bấm “Xem thêm” -->
<span id='smiley-more' style='display: none;'>
<img src='LINK_HÌNH' title='CHÚ-THÍCH_KÍTỰ'/>KÍTỰ.1
<img src='LINK_HÌNH' title='CHÚ-THÍCH_KÍTỰ'/>KÍTỰ.2
...
<img src='LINK_HÌNH' title='CHÚ-THÍCH_KÍTỰ'/>KÍTỰ.N  

</span>
<span id='smiley-toggle'><a href="javascript:moreSmilies()"> Xem thêm </a></span>
</div>

- Thay LINK_HÌNH thành link hình Emoticon của bạn vào đây.

- CHÚ-THÍCH_KÍTỰ // Hiện chú thích kí tự khi bạn rê chuột lên ảnh.




- KÍTỰ // Chữ kế bên Emoticons. Kí tự nào là tùy bạn đặt cho Emoticons.




* Ngoài ra, thay vì dùng đoạn code ở bước 3, bạn cũng có thể dùng đoạn code sau:

(Cách thức cũng giống nhau, nhưng có hơi chút khác biệt về giao diện.)

<!-- Emotion comment (2)-->
<script type='text/javascript'> 
//<![CDATA[ 
if(typeof(rnd) == 'undefined') var rnd = ''; 
rnd = Math.floor(Math.random()*1000); 
rnd = 'id-' + rnd; 
document.write('<a href="#" onclick="tmp = document.getElementById("' + rnd + '"); tmp.style.display = (tmp.style.display == "none") ? "block" : "none"; return false;" style="text-decoration : none;float:left;margin-right:2px;">'); 
//]]> 
</script> 


<!-- Dòng hiện vài Emoticon mẫu khi chưa bấm [▼/▲] -->
<img src='LINK_HÌNH' title='CHÚ-THÍCH_KÍTỰ'/> 
<img src='LINK_HÌNH' title='CHÚ-THÍCH_KÍTỰ'/> 
...
<img src='LINK_HÌNH' title='CHÚ-THÍCH_KÍTỰ'/>  <b>[▼/▲]</b> 


<script type='text/javascript'>
//<![CDATA[ 
document.write('</a>'); 
//]]> 
</script>
<br/>
<br/>

<!-- Khung hướng dẫn chèn Emoticons Comment
**Có thể bỏ đi nếu không cần**-->
<div style='border:#4F4F4F 1px dashed; padding: 4px; background:#FFFF96;'>
<b>Chèn thêm Emoticons vào nhận xét: </b>
<br/>
<span style='color: #3366ff; font-family: Verdana; font-size: 10pt;'>Rê chuột lên Emoticons để thấy các kí hiệu tương ứng!</span>
<br/></div>


<script type='text/javascript'> 
//<![CDATA[ 
document.write('<div id="' + rnd + '" style="display:none;">'); 
//]]>
</script>


<div style='text-align: left; border: 1px solid #cccccc; padding:4px; background:#affdd3;'>

<!-- Khung hiện đầy đủ các Emoticons khi bấm [▼/▲] -->
<img src='LINK_HÌNH' title='CHÚ-THÍCH_KÍTỰ'/>KÍTỰ.1
<img src='LINK_HÌNH' title='CHÚ-THÍCH_KÍTỰ'/>KÍTỰ.2
...
<img src='LINK_HÌNH' title='CHÚ-THÍCH_KÍTỰ'/>KÍTỰ.N  

</div>
<script type='text/javascript'>
//<![CDATA[ 
document.write('</div>'); 
//]]> 
</script>


Bước 4: Save template. (Lưu mẫu)

THE END.

19 nhận xét:

Trả lời
Tiểu Vũ nói...
lúc 09:19 22 tháng 9, 2011  

Hic hic. Mình đã làm đi làm lại, và kiểm tra rất kĩ, nhưng vẫn bị báo lỗi phân tích cú pháp ko đúng ở thẻ đóng html. Bạn có thể kiểm tra lại giúp mình xem code của bạn đã chính xác chưa giúp mình đc ko?
Làm phiền bạn rùi ^^

Trả lời
Rua nói...
lúc 12:36 22 tháng 9, 2011  

Mình đã Test lại trên một temp khác, không bị lỗi đâu bạn, rất có thể bạn bị lỗi ở bước 2 đó, thẻ đóng </div> phải đặt sau thẻ đóng </b:loop>

Trả lời
Tiểu Vũ nói...
lúc 16:32 22 tháng 9, 2011  

Ừ. mình đã kiểm tra rất kĩ rồi ^^. Vẫn không tìm ra vì lí do gì. Nhưng mà ko sao, mình sẽ kiểm tra lại lần nữa, hoặc tìm một cách làm khác. Cám ơn bạn nhé.

Blog của bạn đẹp thật đấy :x

Trả lời
Rua nói...
lúc 08:13 23 tháng 9, 2011  

Vậy bạn nên test từng bước trước, copy nguyên code trên khỏi chỉnh sữa gì, mỗi bước mỗi bấm xem trước là biết lỗi nằm ở bước nào thôi :)

Cảm ơn lời khen của Tiểu Vũ nha, mình có ghé blog bạn rồi, dễ thương lắm, nhẹ nhà và thơ mộng ^^

Trả lời
Tiểu Vũ nói...
lúc 00:22 24 tháng 9, 2011  

Hi hi, mình đã thử trên một temp khác và đã làm được. Chỉ là ở blog của mình thì vẫn báo lỗi. Chắc là lỗi gì đó. Đành vậy.

hi hi, mình cũng cám ơn bạn :hun

Trả lời
Akirayuuri nói...
lúc 20:01 25 tháng 9, 2011  

mình không thấy mẫu <\b:loop..> ở đâu cả, phải làm sao?

Trả lời
Rua nói...
lúc 07:52 26 tháng 9, 2011  

Bạn phải mở rộng mẫu tiện ích, hầu như temp nào cũng phải có mà.

Trả lời
CD4Pro.info nói...
lúc 15:05 21 tháng 1, 2012  

Thanks You!

Trả lời
DucRuaX nói...
lúc 12:10 4 tháng 4, 2012  

Cảm ơn bạn!
Nó đã hiện ra các icon rồi. Nhưng sao mình ko thể đưa vào cmt đc nhỉ.
:meu

Trả lời
Nặc danh nói...
lúc 17:18 4 tháng 4, 2012  

:leluoi

Trả lời
LeeShinYa nói...
lúc 18:46 7 tháng 4, 2012  

Bước 2 phần
Tìm dòng
bị lỗi thì phải bạn à. :(
Mình đã test bằng các temp khác nhau, kể cả temp cơ bản từng bước bước một. Nhưng vẫn bị báo lỗi phân tích cú pháp ko đúng ở thẻ đóng html.
Bạn có thể xem lại giùmm ình được không? :D

Trả lời
Rua nói...
lúc 21:09 7 tháng 4, 2012  

Mình cũng áp dụng cho nhiều template mà đâu có lỗi gì bạn, có thể bạn đóng thẻ </div> không đúng chỗ đó!

Trả lời
vn-anime nói...
lúc 18:52 8 tháng 4, 2012  

Bạn có bộ hình emo ở hình đầu tiên ko vậy? share mình với

Trả lời
Rua nói...
lúc 23:14 8 tháng 4, 2012  

Uhm, của bạn đây: http://www.mediafire.com/?qjtfq81av2iv2cw

Have fun!

Trả lời
vn-anime nói...
lúc 23:20 8 tháng 4, 2012  

@Rua :thanks bạn nha

Trả lời
An Pham nói...
lúc 17:47 17 tháng 8, 2012  

Không làm được và đã thử 3 lần rồi :(...Cám ơn chủ nhà nhiều lắm nhe.

Trả lời
Rua nói...
lúc 19:30 17 tháng 8, 2012  

Sao lại không được nhỉ, mình dùng cho nhiều template vẫn ổn mà ta!

Trả lời
An Pham nói...
lúc 10:33 22 tháng 8, 2012  

@Rua :Tại mình kém quá...khg phải tai Rua đâu...xin lỗi nha.:(

Trả lời
Tô Thanh Tùng nói...
lúc 10:20 28 tháng 9, 2012  

hay quá thử làm theo cái nèo! :hun thanks Rùa nha!

Lên đầu trang
Xuống cuối trang