DTE :]

Thursday, February 23, 2012

Memanfaatkan JQuery untuk Mengizinkan Elemen Terlarang Masuk ke dalam Kometar Blogger

Memanfaatkan jQuery untuk Mengizinkan Elemen Terlarang Masuk ke dalam Kometar Blogger
Elemen pengisi komentar yang lebih beragam

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>

Labels: , ,

34 Comments:

Post a Comment



<< Home