Hẳn bạn cũng từng biết về addon Greasemonkey giúp thêm bộ chèn biểu tượng cảm xúc trực tiếp vào công cụ đăng bài viết (Post Editor) của Blogspot. Kịch bản này chỉ hoạt động trên trình duyệt FireFox. Thật may là sau một quá trình nguyên cứu, mình đã áp dụng thành công phương pháp này đối với hệ thống nhận xét popup. Cách thức thực hiện là viết một kịch bản tạo chức năng chèn các thẻ <b></b> (in đậm), <i></i> (in nghiêng), <a></a> (liên kết) và một bộ biểu tượng cảm xúc (ở đây mình tạo bộ 25 Zing Emoticons) sau đó upload kịch bản lên trang tài nguyên userscript.org. Để cài đặt tiện ích này, người dùng cần sử dụng trình duyệt FireFox tải addon Greasemonkey rồi cài đặt. Trước tiên đến trang Greasemonkey, nhấn nút Add to Firefox để tải về cài đặt tiện ích này.
Sau đó khởi động lại (restart) trình duyệt, tiếp tục tải Emoticons Script về, nhấn Install để script tự động cài đặt vào FireFox.
Sau đó mở hệ thống nhận xét popup bạn sẽ thấy bộ biểu tượng cảm xúc sẽ xuất hiện trong phần Comments Form. Mỗi khi cần chèn biểu tượng hoặc các thẻ HTML, bạn chỉ việc click vào nó là xong.
Tuy nhiên để các biểu tượng cảm xúc hiển thị trên phần nhận xét (không phải dạng Popup) thì bạn phải cài đặt chức năng biểu tượng cảm xúc, bằng cách đặt đoạn code sau đây vào trước thẻ </body>.
<b:if cond='data:blog.pageType == "item"'>
<script type='text/javascript'>
//<![CDATA[
//Emoticons for Blogger Comments || Author: Huynh Nhat Ha || http://huynh-nhat-ha.blogspot.com || © Copyright 2010
function emoticonBloggerHuynhNhatHa() {
if(!document.getElementById) {return;} // no support
bodyText = document.getElementById('comments-block');
theText = bodyText.innerHTML;
theText = theText.replace(/:1/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVb9s2pMqHLWsNMi-kbfAdKaC5aUiHySId-UAVDWckJyOcN_OsSCwPF-k2-asaachXPENodzMbi2Xm7R0gwDQj3s0OPj4nM08eMyNSTOu-0XnJDqiuHDYyWKe2RF4QzSwn2cDLpjiKomT5/s1600/49.gif" />');
theText = theText.replace(/:2/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1h95ygKG5-YcQyhru7tp9JwKESCMOSRMk-_pzoExDpWAUj2rGrWwQqEnyXE6QnQL_hYtopeFcg8y5V4xuDnFdBwHvWvz9j6cUCx-vhfVDYGQe5rx4b1Js3tmzKi5dVy5lYeLCV7xSVREw/s1600/102.gif" />');
theText = theText.replace(/:3/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAjFIvJfCww-nKPE5YCvQtP__5TlOpQ7ilzhgfCT01lDURvisVSJBhOoA2UDNf-P-9xMIAHBYbtwp-hCtk0H4aSVAVCWXg2prvg_RC0xjJERfSyUhL8GQRba13_doS3g-NPYhtUHdyJMzt/s1600/113.gif" />');
theText = theText.replace(/:4/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgidI75ywIa10IFzX0zdIVDgVMFJ8YiKBexLoMRL1pPSZ__eqJqYR9p-N4Do7r7NpXap9J7xBTdltLogF4CSJ-gnAu8yNt75or5RCdwcmZcGAos8qm3sZ8Q13msSXffjhw6eJqfdXfXCSek/s1600/93.gif" />');
theText = theText.replace(/:5/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj07coIFI6v4xnOdq6I65YuGATSgeFpTCxCUroeI7NhnSxUVM3WwyiZhu38k3e6Pk2YDePPrJzPV3OusTXEnRn5BBPxuFf5UOiMFwFSHoMDXgu43JE2mylF8lK8bbgHPAebuuf9qJttjy_X/s1600/61.gif" />');
theText = theText.replace(/:6/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjulzE_vCujM5exsbq9hLXuzarQi-h6eSxGS1KT0zCQj5KB8PAioeA2i8PPtnyOZqPsDnrHuyxecI7HKPMJVHyXHhn3Y_D5xS6LkVZZ5EDqdqzufzkb_AWUxenL4BLkYhEXMdvIyVmk8X3/s1600/134.gif" />');
theText = theText.replace(/:7/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaBn0Ycy4m42BJzybCQCtB6UpQP_LNxMhAp1Wa0b19EpFcX6Q-3TFK1zlc044itgJ2YYJvPIQbn48MrtC2A2On-QYO4tOU6EpGftZqS2ebOj9xEuhuYHPuP2F_b9xho107ZvGj9RDRkGdq/s1600/39.gif" />');
theText = theText.replace(/:8/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinDbeSXzMvIp7qwjpvRFhtaPcnBEyGF2g-kYi8-mCaLAKlbLz2wYtsrX2Uo_GlqprTC1tC_c0fhIOFfVfBHC7wUOx2A8YtqO5QTKU0L0GNplwJ9u_92vQeayPscxwB1SjF3llISxW1FAVN/s1600/106.gif" />');
theText = theText.replace(/:9/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd0UDrneQtbIwsHvcluaukJjscfbqsJ5h4HaV2D50kxktr2BB1B1F_G3U9ZJhcRWUL-vpuGrHAw3Q38DrsR58PUhd9pD3BE9fW1lkiju_TjxTBLa0lY4kcbF0T1WckLobG51BqsFeoKM7K/s1600/43.gif" />');
theText = theText.replace(/:A/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh782QvBWv1nNRTPLiDs6JxfzHll5PlzZIGHviMA2_M2D3Hi7oCzpZFeUXZQUMOLJSEERjLJeBTQUdnqGf6Kh_vYqL-gyxHBTZHIism0NCT8AjEe-dSAPR_5Lb7C3SQBXg0VUG7a3a9Ua_6/s1600/111.gif" />');
theText = theText.replace(/:B/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFy7ZrSjywu6ImeyUTqfi_UkOgjhdP4jXqrFkosWkpL4xymHcwIXe9stjzneZtxMeUInfKXfFqGt3_3xk_dBQ7NhTKt6F6NcPcozXFILExUnvQ-wsx9Qoqx8s-cRr5rMJAixtE0MOp_fTE/s1600/48.gif" />');
theText = theText.replace(/:C/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ1HTTh96DiXBkSg63cf68xI9LaB3CcbWPOq_ugLuA4ejeDQ6P4agVnK9zWB0TUBvPbVSTFj6hoX8-XuwpsaOyEGhxSqI9Mh0I30TgPip0USAaA4EWSUMOcEMLl5hJHo12Xf7TEYBfNArL/s1600/54.gif" />');
theText = theText.replace(/:D/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYMQ2yRYZIC-V-k6HyX68EM-qumBVT-QS9Exm0EX2QBbbj2D_9-LybyBmiL3C8uW5Xyr4PxnTRMs5S2aLClxUwyUmlpcXCnJT_fncHqz71UYJ_7APKNk2m5DANKjZg4WAo6bvrqL092SJ8/s1600/63.gif" />');
theText = theText.replace(/:E/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW26HActu0f3MkdmpnEwTribqNZpW1nsTEPuNxpNhBjreI_BvpfjFC5YiLAnCkaVmxWXhbWVVRPQIEabRb6tFVZq_QO7z4lpeYVbfV_KrF34JpUouv6pvsi6pvAP4H6p7UJONIBNLxRVai/s1600/100.gif" />');
theText = theText.replace(/:F/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy-mKYiRSpP4smbVHVk7BWRsCUcwNb3zyTfac-D1MncGrJ-zx5sN7StTGWM4i6yHsyAh1HoRRv77J6XGV6KhHuI1gEAv7B-im7-d3WWcNfYSSRUqrqLMn7GBBldauvTFskMFwX9G3Wi0O_/s1600/45.gif" />');
theText = theText.replace(/:G/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOF1lRB90ZmxIuEYMbUzDqLR6PI07GbQUXhmmyC-BN4sWJOu8bT0oKEOhCk5lNa-4XgT0d0bHk0NnC_XjJugGtIkT-ih8cLYfr6T3EurNve3HwkV9QKwK_0sLkDdvw_145-71eZAzjN7hg/s1600/77.gif" />');
theText = theText.replace(/:H/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFH248x3JWfkBfEQdmxA-4zfrrngUO2J6FTq5tWMSSNoix1vUPSzVI_hzMr3IC9Y4DsVRM_FBv8Z8p5Tb3fo2M_9mpRqO-mXjSZWYxUz3bDNMBrfB3gRwt_bdkrr5LzHrJk2EfBuUc4CJb/s1600/86.gif" />');
theText = theText.replace(/:I/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAhzVgg_IGLAy-KgttfXjh0i65ZCaNIt1MeW6khwSIQXw-_fgs8AR2gnUgAfBU_llpkmTjZPeEXq5dORricZfRW8exMQ-U8tcFw3dg_tKztGiytQklgH0_honY07sSaPlUKAYw4upf_ITg/s1600/94.gif" />');
theText = theText.replace(/:J/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFqFWMAb9Vo3pnP_cKR0ixYpCXmwXq4H8qzOVPyhPDiMb5e9_9QhuP19Vx5ejK3EJNPGNZFP8zCfXFKdjjDCTgZsbU3lT36NpnCV-7Fc2VXVsMXGO9KV324gr6JCiY_oEK_yHWrxiwknvj/s1600/83.gif" />');
theText = theText.replace(/:K/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPKCIJsUQDlZqgAAaSbM_QT78uUc3iWdwh2oOKSXo92q2LvvPoidamCKV8RIF08QytLVxM6swYxhyphenhyphenCvagvsFFBhozghBtbNkQSsuD8XA4yvuQGDQ_er80t_VXJbhyCp8i3tlZyvv5ak6OK/s1600/59.gif" />');
theText = theText.replace(/:L/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgchQd5f-tmbS4-9h7rhff0gc26D0K_V17hSN1Q4b5LRj97zVT5vabwqCae0SXU-dRIt0VWSBHMODfGOz8KuWJ2P1eXjjBPu4AjkUaEzmLLP5HFN7-RagmFz4cFRMlebOVIdHd0xXAEUiC6/s1600/soldierbaby.gif" />');
theText = theText.replace(/:M/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtdxm_WSdwUtJs0ThmErFPP9nCk3EseHBJxatZG8BmAvfBrKOwmdgvm8KJvvEe1fN_UyW5YbpsFmyhbHEPAj1uCyGcCYtHANg4XIKHYNUIhMYkS0DA3OLzDcRcGrcT6HkHG2OTLVtY8vxj/s1600/alo.gif" />');
theText = theText.replace(/:N/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY9R2b04qFJ0dD7E58_E4pxBMMa323lV2Wa3NNrUHFN7vb7HlB1gMC8qA7jVJGfytbfg6tysi0ypMIOJ01P36aZWqvYPOz3hHTS5zke_FpxW8hyphenhyphen93MguBMe0g2bUOm_H7nvdmeLdmZWpfi/s1600/shutup.gif" />');
theText = theText.replace(/:O/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMHnmbjrKYLKIarb8wIC56j-h0-7hQ5FRb1VyWvhCcjxmRSqqbmyDCf4rlxb8nCDcgvDAsiXy6xjCCp-Cps72pM5Lyk5R1aFV_TrgBW27a5xCP8BjxlsvyLQGKLA34YNRSclS_jghc4MXH/s1600/yeulam.gif" />');
theText = theText.replace(/:P/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj14kGJisuL8qvj7cMtQe6BAiBOHGwK3AVXe0DWp9hJEhQIdnvJ-gSqtnQzuv9o1Zh33uPSiKTAzBOAtGVUK3jCRWcx0jNZkwimMOeGDheNE3dIZ_u8CPalbFl5huaK0Rg__EgltcpU60pI/s1600/datbomb.gif" />');
bodyText.innerHTML = theText;}
//]]>
</script>
<script type='text/javascript'>
emoticonBloggerHuynhNhatHa();
</script>
</b:if>
Chú ý
1 Để chức năng biểu tượng cảm xúc hoạt động trong phần nhận xét thì bạn phải thay đổi ID comments-block cho phù hợp. ID này nằm trong một thẻ chỉ định thành phần chứa các dữ liệu của nhận xét, thẻ này thường nằm ngay trước dòng <b:loop values='data:post.comments' var='comment'>. Tùy theo cách đặt tên của người thiết kế Template mà id này có thể có tên khác nhau ví dụ: comments-block, comments-block3, comments_block, cm_block, commentsblock …
2 Sau khi cài đặt thủ thuật này, bạn cần cập nhật lại thủ thuật Chèn biểu tượng cảm xúc vào nhận xét dạng input để tạo sự thống nhất.
Để tạo ra những thủ thuật vừa mới vừa độc thì mình luôn luôn khuyến khích các bạn đóng góp ý tưởng, bởi một lẽ hiển nhiên là “một cây làm chẳng nên non – ba cây chụm lại nên hòn núi cao” và trí óc mình dù có sáng tạo mãi thì nó cũng cạn đấy bạn ạ. Thế nên sự đóng góp của các bạn rất hữu ích cho cộng đồng.
Trước đây, mình đã từng hướng dẫn bạn cài đặt
Các bạn có thể thấy tại trang chủ của
Trong quá trình phát triển chương trình cộng tác viên, mình đã nghĩ ra cách tạo tiện ích Bài viết mới nhất dành cho đối tác VIP với mục đích vinh danh công sức của cộng tác viên và cuối cùng mình đã thử nghiệm thành công. Hôm nay xin giới thiệu với bạn đọc, một là chia sẻ một thủ thuật mới, hai là dành tặng cho cộng tác viên đầu tiên của Thủ thuật Blogger, đó là blogger có biệt danh peace19812006 vì sự nhiệt tình của anh ấy cùng sự tin cậy của anh ấy đối với Thủ thuật Blogger.
Trong quá trình thiết kế weblog trên nền tảng Blogspot, hẳn bạn đã, đang và sẽ vọc rất nhiều script, dẫn đến thực tế là gắn nhiều script vào Template sẽ gây ảnh hưởng đến tốc độ load trang. Có một yêu cầu của bạn đọc về việc làm sao có script gọi được script, tức là gom các file script vào một chỗ rồi đến lúc nào cần script đó hoạt động thì mới gọi nó ra, chứ không cho nó load hết toàn bộ trong trang. Mình viết thủ thuật này theo yêu cầu của bạn