Memanfaatkan JQuery untuk Mengizinkan Elemen Terlarang Masuk ke dalam Kometar Blogger
Saya terinspirasi dari posting ini: Adding Images and More Text Formats to the Body of the Comments
Bukankah itu sangat luar biasa? Kita bisa menyisipkan elemen-elemen yang tidak lazim ke dalam komentar Blogger hanya dengan memanfaatkan cara kerja JavaScript .replace()
. Pada intinya, kita menyisipkan kode-kode yang bisa dimasukkan ke dalam komentar seperti [im]
. Kode tersebut bukanlah kode yang bisa mempengaruhi file HTML dan hanya merupakan teks biasa yang dibuat-buat, namun dengan sedikit trik, Anda bisa memanfaatkan peraturan yang Anda buat sendiri untuk mengontrol fungsi .replace()
Di sini Saya akan memberikan alternatif lain yang lebih aman dan tampak rapi, yaitu menggunakan jQuery untuk memanipulasi dua jenis tag yang diperbolehkan masuk ke dalam komentar Blogger yaitu <b>
dan <i>
. Kita akan menggunakan atribut rel
sebagai pengontrol. Dan ini adalah sebuah trik untuk mengubah tag-tag tersebut menjadi tag lain dengan jQuery ⇒ http://stackoverflow.com/questions/7093417/using-jquery-to-replace-one-tag-with-another
Katakanlah kita ingin memposting kode di dalam tag <pre>
untuk diterbitkan ke dalam komentar postingan, namun seperti yang kita tahu, Blogger tidak mengizinkan tag <pre>
masuk ke dalam posting komentar. Jadi kita bisa menggunakan kode ini sebagai penanda:
<i rel='pre'>Kode di sini...</i>
Untuk mengubah tag <i rel='pre'>
menjadi <pre>
kita bisa menggunakan fungsi ini:
// Seleksi elemen `p` di dalam `#comments`
$('#comments p').each(function() {
// Ubah semua tag `<i rel="pre">` dengan `<pre>`
$('i[rel="pre"]', this).replaceWith(function() {
return $('<pre></pre>').append($(this).contents());
});
});
Selektor $('#comments p')
tidak mutlak. Terkadang ada juga kerangka komentar yang terdiri dari elemen <dd>
, bahkan mungkin juga dengan ID komentar yang berbeda sehingga selektor tersebut juga bisa diubah menjadi $('#comments dd')
atau $('#commentsbox dd')
Cukup pastikan bahwa tema Anda sudah dilengkapi dengan jQuery, kemudian letakkan kode tersebut di atas </body>
. Dan coba terbitkan sebuah komentar berupa teks di dalam <i rel='pre'></i>
Lebih Lengkap
Untuk tingkat manpulasi yang lebih lengkap, Anda bisa menggunakan baris kode ini. Salin kode ini lalu sisipkan di atas </body>
:
<script>
//<![CDATA[
$('#comments p, #comments dd').each(function() {
// Singkirkan semua tag `<br>` di sebelah tag `<b rel^="h">`
// (semua elemen `<b>` dengan nilai atrubut `rel` yang diawali dengan "h")
$('b[rel^="h"]', this).nextAll().filter('br').remove();
// Menyisipkan tag `<pre>`
$('i[rel="pre"]', this).replaceWith(function() {
return $('<pre></pre>').append($(this).contents());
});
// Menyisipkan gambar
$('i[rel="image"]', this).replaceWith(function() {
return $('<img />').attr('src', $(this).text());
});
// Menyisipkan tag `<h3>`
$('b[rel="h3"]', this).replaceWith(function() {
return $('<h3></h3>').append($(this).contents());
});
// Menyisipkan kuota/catatan
$('b[rel="quote"]', this).replaceWith(function() {
return $('<blockquote></blockquote>').append($(this).contents());
});
// Menyisipkan tag `<code>`
$('i[rel="code"]', this).contents().unwrap().wrap('<code></code>');
});
//]]>
</script>
Klik Simpan Tema. Setelah itu Anda tinggal menuliskan pesan untuk para komentator di atas formulir komentar seperti ini:
Untuk menyisipkan kode, gunakan tag
<i rel="code">KODE ANDA DI SINI...</i>
atau<i rel="pre">KODE ANDA DI SINI...</i>
Untuk menyisipkan gambar, gunakan tag<i rel="image">URL GAMBAR ANDA DI SINI...</i>
Untuk menyisipkan judul, gunakan tag<b rel="h3">JUDUL ANDA DI SINI...</b>
Untuk menyisipkan catatan, gunakan tag<b rel="quote">CATATAN ANDA DI SINI...</b>
Untuk menciptakan efek tebal gunakan tag<b>TEKS ANDA DI SINI...</b>
Untuk menciptakan efek huruf miring gunakan tag<i>TEKS ANDA DI SINI...</i>
34 Comments:
Menarik sekali gan, dari dulu pengen yang kayak gini. Tapi apakah ini tidak melanggar TOS dari blogger sendiri??
By Yopi Hasopa, at Thursday, February 23, 2012 at 3:22:00 PM GMT+7
@Yopi Hasopa Saya rasa tidak. Karena pada dasarnya kita tidak melakukan apa-apa terhadap Blogger. Kita hanya memanipulasi sudut pandang browser/menipu cara baca browser. Hmmm... setelah Saya pikir-pikir kembali, istilah "elemen terlarang" itu memang terlalu radikal ya! Haha...
By Taufik Nurrohman, at Thursday, February 23, 2012 at 8:50:00 PM GMT+7
Wowwww Perkembangan Yang Sangat Bagus Bang
By Sinto, at Friday, February 24, 2012 at 2:44:00 PM GMT+7
@system of blog Saya dapet nilai berapa? :p
By Taufik Nurrohman, at Friday, February 24, 2012 at 6:29:00 PM GMT+7
1000
nilai nya hehehee coba aj bisa ngembangin kyak gini pasti mantep :D,
By Sinto, at Friday, February 24, 2012 at 7:35:00 PM GMT+7
kalo membuat link aktif ilang gimana bang?mohon jawabannya
By Mr.Randy, at Friday, March 23, 2012 at 4:09:00 AM GMT+7
om taufik ko saya ga bisa2 ya ngubah link jadi -> [link] ? :'(
padahal udah saya ikutin saran om yg buat agan muxlimo :'(
By Unknown, at Sunday, June 3, 2012 at 5:02:00 PM GMT+7
@Suhendrie Purnama Digabung saja dengan yang lain:
$('#comments p, #comments dd').each(function() {
// Singkirkan semua tag <br> di sebelah tag <b rel^="h">
// (semua elemen <b> dengan nilai atrubut rel yang diawali dengan "h")
$('b[rel^="h"]', this).next('br').remove();
// Menyisipkan tag <pre>
$('i[rel="pre"]', this).replaceWith(function() {
return $('<pre></pre>').append($(this).contents());
});
...
...
$('i[rel="anchor"]', this).replaceWith(function() {
return $('<a href="' + $(this).text() + '">[Link]</a>');
});
});
By Taufik Nurrohman, at Sunday, June 3, 2012 at 7:37:00 PM GMT+7
@Taufik Nurrohman udah bisa om \o/ \o/ \o/
makasih banyak om :D :D
By Unknown, at Monday, June 4, 2012 at 4:57:00 AM GMT+7
om mau tanya lagi :(
ko tag pre nya ga bisa yaa ? ~x(
By Unknown, at Monday, June 4, 2012 at 5:52:00 AM GMT+7
@Suhendrie Purnama <i rel="pre">Kode di sini...</i>
By Taufik Nurrohman, at Monday, June 4, 2012 at 8:24:00 AM GMT+7
tag pre nya kok ga bisa yah, kalo masukin image udah bisa. :P
By Bayu Handono, at Saturday, June 9, 2012 at 11:59:00 AM GMT+7
@Bayu Handono Bukannya tidak bisa. Mungkin cuma tampilannya saja yang belum dimodifikasi. Coba tambahkan ini di atas ]]></b:skin>:
#comments pre,
#comments i[rel="pre"] {
display:block;
background-color:#333;
font:normal 12px "Courier New",Monospace;
padding:0.5em 1em;
color:white;
word-wrap:normal;
white-space:pre;
}
Selengkapnya: CSS Fallback untuk Fitur Manipulasi Komentar Blogger
By Taufik Nurrohman, at Saturday, June 9, 2012 at 6:46:00 PM GMT+7
saya ijin untuk share trik ini di blog saya ya gan :)
By Rizky Wardiansyah, at Tuesday, June 19, 2012 at 7:16:00 PM GMT+7
berhasil mas, tapi ko malah hilang yah kodenya pas di publis???
By Unknown, at Saturday, November 3, 2012 at 9:36:00 AM GMT+7
Saya kan pake PRISM syntachighlighter dari akang, biasanya kan untuk menulis kode seperti ini :
<pre><code class="languange-css">
....
</code></pre>
nah untuk menulisnya gimana kang? soalnya tag CLASS tidak diizinkan
By Kang Ismet, at Friday, May 3, 2013 at 10:37:00 PM GMT+7
⇒ /2012/09/syntax-highlighter-dengan-prism.html?showComment=1362493246789#c8544828114478662092
By Taufik Nurrohman, at Saturday, May 4, 2013 at 6:32:00 AM GMT+7
nuhun kang, sedang dipelajari. untuk Threaded comment
$('#comments p, #comments dd')
diganti menjadi apa?
terus, untuk menyisipkan link seperti
<i rel="anchor">URL</i>
menjadi tulisan {link} sudah bisa dengan script di atas?
Nuhun kang...
By Kang Ismet, at Saturday, May 4, 2013 at 10:39:00 AM GMT+7
Tidak perlu diganti-ganti. Untuk mengaktifkan link seperti itu sudah ada jawabannya di sebelah atas ^:D
By Taufik Nurrohman, at Sunday, May 5, 2013 at 7:59:00 AM GMT+7
xixixi... sorry ga baca komentar yang sama pertanyaannya ;)
By Kang Ismet, at Sunday, May 5, 2013 at 11:21:00 AM GMT+7
This comment has been removed by the author.
By Kang Ismet, at Monday, May 13, 2013 at 1:39:00 PM GMT+7
Supaya lebih mudah, tag PRE digabungkan secara langsung saja dengan CODE seperti ini:
$('i[rel="pre"]').replaceWith(function() {
return $('<pre><code>' + $(this).html() + '</code></pre>');
});
By Taufik Nurrohman, at Monday, May 13, 2013 at 3:36:00 PM GMT+7
mangstab kang.. berhasil
By Kang Ismet, at Monday, May 13, 2013 at 4:19:00 PM GMT+7
Visit W3Schools
By Bingkai Madrasah, at Tuesday, September 24, 2013 at 10:04:00 AM GMT+7
saya sudah menerapkan cara di atas, namun ketika ada yang mengirim gambar di komentar, lebar gambar nya seperti lebar sali gambar itu sendiri, untuk bisa mengatur lebar gambarnya gimana ya mas?
By Taufik, at Sunday, December 8, 2013 at 9:12:00 AM GMT+7
iya mas bener.. ternyata setelah saya pindah syntaknya agar dieksekusi paling akhir sebelum semua tag pre.. syntak pada komentar jadi berpungsi... terimakasih mas...
By you, at Sunday, December 8, 2013 at 9:44:00 AM GMT+7
$('i[rel="image"]', this).replaceWith(function() {
return $('<img />').attr('src', $(this).text().replace(/\/s[0-9]+/, "/s400"));
});
By Taufik Nurrohman, at Monday, December 9, 2013 at 6:29:00 PM GMT+7
terima kasih kode nya mas, sekarang gambar sudah oke
By Taufik, at Monday, December 9, 2013 at 7:46:00 PM GMT+7
.replace(/\[img\](.*?)\[\/img\]/g,"<img src='$1' alt='Loading...'>")
maaf mas... dengan kode di atas supaya lebar gambar bisa di tenteukan lewat css gimana ya mas?
saya pengen nyempurnain yang di berikan mas taufik tempo hari itu mas.
terima kasih atas bantuan nya :D
By Taufik, at Thursday, February 5, 2015 at 9:59:00 AM GMT+7
Coba pakai selektor atribut, lalu targetkan nama gambarnya:
.emo[src$="smile.gif"] {
width:30px;
height:30px;
}
By Taufik Nurrohman, at Saturday, February 7, 2015 at 10:57:00 PM GMT+7
wih tuh nofollow linknya otomatis apa manual, kalo otomatis mau tau dong caranya kang
By Rizky, at Tuesday, February 24, 2015 at 3:31:00 PM GMT+7
kalo template saya manggil pre kyk gini <i rel="pre"><pre><code>...</pre></code></i> terus jquerynya kyk mana ya :(
By Rizky, at Tuesday, February 24, 2015 at 5:33:00 PM GMT+7
bang, saya lampirkan *pre di kolom komentar, yang saya pakai dari syntax experimennya [url=https://www.dte.web.id/2012/06/syntax-highlighter-eksperimen.html]Experimen Syntax Highlighter DTE[/url], yang saya terapkan di [url=https://kolektorw3.blogspot.com/2019/05/cara-verifikasi-blogger-webmaster-terbaru.html]Blog Aku[/url], coba di cek bang kolom komentarnya, pre syntaxnya gak berwarna, kalo di blog post dia work, mohon bantuannya bang, thx
By Mas Kolektor, at Monday, April 13, 2020 at 6:46:00 PM GMT+7
Pastikan kode syntax highlighter dieksekusi setelah semua elemen <i rel="pre"> berubah menjadi elemen <pre>.
By Taufik Nurrohman, at Tuesday, April 14, 2020 at 9:11:00 PM GMT+7
Post a Comment
<< Home