DTE :]

Thursday, July 12, 2012

No Live Links · Mencegah Tautan Aktif Masuk ke dalam Komentar

function blockLinks(parentID, children) {
    var parent = document.getElementById(parentID), content;
    if (!parent) return;
    content = parent.getElementsByTagName(children);
    for (var i = 0, len = content.length; i < len; ++i) {
        if (content[i].innerHTML.indexOf('</a>') !== -1) {
            content[i].innerHTML = '<mark>No live link!!!</mark> Dilarang nyepam di sini!';
            content[i].className += ' spammer-detected';
        }
    }
}
// Jalankan fungsi!
// Seleksi elemen induk dengan id='comment-holder' ...
// dan periksa semua konten paragraf di dalamnya!
blockLinks('comment-holder', 'p');

Fungsi sederhana untuk mencegah hadirnya tautan aktif dalam daftar komentar. Cara kerjanya, JavaScript akan menyeleksi sebuah elemen induk dengan ID tertentu (dalam hal ini: #comment-holder), kemudian akan melihat semua item di dalamnya (dalam hal ini <p>). Jika setidaknya sebuah tautan ditemukan, dengan sekejap ganti semua konten item tersebut dengan pesan larangan tertentu.

Demo

Lihat Demo

Labels: , , , ,

99 Comments:

  • pernah mbaca ini dikomentarnya 7bloggers :D
    tak cobane sik mas.

    By Blogger Putra, at Thursday, July 12, 2012 at 9:18:00 PM GMT+7  

  • oo ini yahh cara peletakkan kodenyaa...

    By Blogger abang ichal, at Friday, July 13, 2012 at 12:01:00 PM GMT+7  

  • Inilah yang saya Butuhkan Kang Taufik, Terkadang, ada saja Komentar yang menggunakan Link aktif, dan saya masukan Komentar Itu ke daftar Spam :D
    matur Nuwun kang Taufik :D

    By Blogger Rosyd Aqbar, at Saturday, July 14, 2012 at 7:27:00 AM GMT+7  

  • ini kalo, dibuat pengecualian yang admin blog gak kena blok gimana mas?

    Soale dulu kan blog ane pernah pake threaded comments yang pake awalan @ trus permalink komenya itu mas,,,setelah pake script ini komen ane yang ngereply otomatis kena block juga..

    By Blogger Unknown, at Friday, July 20, 2012 at 3:27:00 PM GMT+7  

  • Membatasi komentar admin tidak bisa, tapi kalau membuat pengecualian pada URL (hash) permalink komentar bisa:

    function blockLinks(parentID, children) {
    var parent = document.getElementById(parentID),
    content = parent.getElementsByTagName(children);
    for (var i = 0; i < content.length; i++) {
    if (content[i].innerHTML.indexOf('<a href="http') !== -1) {
    content[i].innerHTML = "<mark>No live link!!!</mark> Dilarang nyepam di sini!";
    content[i].className = "spammer-detected";
    }
    }
    }


    Demo: http://jsfiddle.net/tovic/2WLCU/2/

    By Blogger Taufik Nurrohman, at Friday, July 20, 2012 at 4:26:00 PM GMT+7  

  • ini yang saya cari,
    makasih sharenya,
    mohon ijin copas gan

    By Anonymous Anonymous, at Tuesday, July 31, 2012 at 9:18:00 AM GMT+7  

  • cara makenya gimana mas ? :(

    By Blogger Adi Nugraha Y, at Thursday, August 23, 2012 at 6:55:00 AM GMT+7  

  • mas, koq di blog saya ga bisa ya, "kodenya saya tarok diatas "body" seperti komentar mas taufik diatas??

    By Blogger hot info news, at Thursday, August 23, 2012 at 10:36:00 AM GMT+7  

  • Di atas </body>, bukan di atas <body>

    By Blogger Taufik Nurrohman, at Thursday, August 23, 2012 at 2:00:00 PM GMT+7  

  • kalau link aktif dihilangkan tetapi kata - katanya tetap, contoh
    saya berkomentar dengan teks "Free Download" dengan tujuan link ke blog saya. tetapi link untuk Free Download jadi hilang. jadi hanya teks biasa saja, itu bagaimana caranya ??

    By Blogger Yusril Ibnu Maulana, at Thursday, August 23, 2012 at 4:26:00 PM GMT+7  

  • Pakai JQuery lebih gampang:

    $(function() {
    $('#comment-holder').find('a').contents().unwrap();
    });


    Demo: http://jsfiddle.net/tovic/2WLCU/12/

    By Blogger Taufik Nurrohman, at Thursday, August 23, 2012 at 5:42:00 PM GMT+7  

  • jadinya kan begini ???

    <script type='text/javascript'>
    //<![CDATA[
    $(function() {
    $('#comment-holder').find('a').contents().unwrap();
    });
    //]]>
    </script>


    tapi kok gk work ??
    contoh lihat di : http://yuzsite.blogspot.com/2011/11/tukeran-link.html
    mohon pencerahanya ...

    By Blogger Yusril Ibnu Maulana, at Thursday, August 23, 2012 at 6:07:00 PM GMT+7  

  • Punyamu nggak pake #comment-holder, tapi .cm_wrap:

    $(function() {
    $('.cm_wrap p').find('a').contents().unwrap();
    });

    By Blogger Taufik Nurrohman, at Thursday, August 23, 2012 at 9:27:00 PM GMT+7  

  • Gk work Juga... :(, jadi bagaimana ??

    By Blogger Yusril Ibnu Maulana, at Friday, August 24, 2012 at 4:29:00 AM GMT+7  

  • Jadi rame! HOREEEE!!!! \o/ \o/ \o/

    By Blogger Taufik Nurrohman, at Friday, August 24, 2012 at 3:30:00 PM GMT+7  

  • :( ??? :(

    By Blogger Yusril Ibnu Maulana, at Saturday, August 25, 2012 at 6:03:00 AM GMT+7  

  • Wah ni dia yang saya cari. blogku kebanjiran spam nih.

    By Anonymous Anonymous, at Thursday, August 30, 2012 at 7:12:00 PM GMT+7  

  • mas ko saya yang keluar kaya gini???
    "Error parsing XML, line 1863, column 15: XML document structures must start and end within the same entity."
    mohon pencerahannya mas...

    By Blogger Unknown, at Wednesday, October 10, 2012 at 8:24:00 AM GMT+7  

  • akhirnya nemu juga obatnya untuk spam...
    thanks sob... salam kenal.

    By Blogger Unknown, at Monday, October 22, 2012 at 11:28:00 PM GMT+7  

  • By Blogger Unknown, at Saturday, November 10, 2012 at 1:50:00 PM GMT+7  

  • bang, gimana caranya kalo ada yang berkomentar dengan link hidup secara otomatis terhapus dan ada salinan komentarnya seperti contoh link komentar yang di atas

    By Blogger Unknown, at Saturday, November 10, 2012 at 1:52:00 PM GMT+7  

  • Pertama-tama simpan konten originalnya di dalam variabel sebelum dihapus. Misalnya seperti ini:

    var salinan = content[i].innerHTML;

    Lalu ganti konten komentar dengan elemen beru berupa peringatan dan salinan dari konten yang lama:

    content[i].innerHTML = "<mark>No live link!!!</mark> Dilarang nyepam di sini!<textarea>" + salinan + "</textarea>";

    Demo: http://jsfiddle.net/tovic/2WLCU/50/

    By Blogger Taufik Nurrohman, at Saturday, November 10, 2012 at 2:59:00 PM GMT+7  

  • terimakasih bang master kode, langsung ngefek nih. biar kata sempet keder pas nerapin kodenya :D

    oia, nanya lagi nih bang. cara ngatur fungsi scrollnya gimana yah bang?? :D dari pada malu bertanya stress di kode, mending ngajak temen ikutan stress juga :D

    By Blogger Unknown, at Saturday, November 10, 2012 at 10:36:00 PM GMT+7  

  • kaga jadi ngajak stresnya bang, udah ketemu letak kesalahannya. ternyata CSSnya kaga ke ajak :D jadi malu nih 0:)

    By Blogger Unknown, at Saturday, November 10, 2012 at 11:34:00 PM GMT+7  

  • Sukses cuY !! \o/

    Keren" tutornya.

    By Blogger Viyan Pradita, at Thursday, November 29, 2012 at 11:27:00 PM GMT+7  

  • sy msh newbie mas,script di atas penempatannya di mana yah? mohon pencerahannya. mksh

    By Blogger Unknown, at Monday, December 17, 2012 at 11:01:00 PM GMT+7  

  • mau nanya bang. mohon maaf kalo keluar dari pembahasan...
    kalo mau pasang tombol di atas formulir komentar gimana yah, seperti formulir komentar milik DTE ini??

    http://4.bp.blogspot.com/-bgpbI8mKQ1A/UOxLtYmaY-I/AAAAAAAABUg/rxWM1oBjN5o/s1600/tombol.PNG

    soalnya kalo pemasangan melalui menu setelan/Pesan Formulir Komentar kaga bisa nyimpen teks berformat tag.

    By Blogger Unknown, at Tuesday, January 8, 2013 at 11:42:00 PM GMT+7  

  • Tidak bisa dari situ. Harus dari dalam template secara langsung.

    By Blogger Taufik Nurrohman, at Wednesday, January 9, 2013 at 7:53:00 AM GMT+7  

  • Makasih banyak bang,. tapi yang bikin saya pusing itu formulir komentarnya, ketika ada postingan si kotak komentar memang terlihat wajar. nah pas nggak ada komentar, si formulir komentarnya jadi ciut/mengecil.

    haha kayaknya pertanyaan saya semakin ngelantur nih :) .

    By Blogger Unknown, at Thursday, January 10, 2013 at 3:12:00 AM GMT+7  

  • Mungkin asalnya dari sini:

    var onReply = function(commentId, domId) {
    if (replybox == null) {
    // lazily cache replybox, and adjust to suit this style:
    replybox = document.getElementById('comment-editor');
    if (replybox != null) {
    replybox.height = '250px';
    replybox.style.display = 'block';
    replyUrlParts = replybox.src.split('#');
    }
    }
    if (replybox && (commentId !== replyParent)) {
    document.getElementById(domId).insertBefore(replybox, null);
    replybox.src = replyUrlParts[0]
    + (commentId ? '&parentID=' + commentId : '')
    + '#' + replyUrlParts[1];
    replyParent = commentId;
    }
    };


    Fokus pada bagian replybox.height = '250px';

    By Blogger Taufik Nurrohman, at Friday, January 11, 2013 at 12:04:00 AM GMT+7  

  • wah kalo ke JS saya kelimpungan bang (nggak ngarti :D )..
    cuman saya hanya manfaatin

    <b:includable id='comment-form' var='post'>
    <div class='comment-form'>
    <a name='comment-form'/>
    <b:if cond='data:mobile'>
    <h4 id='comment-post-message'>
    <a expr:id='data:widget.instanceId + &quot;_comment-editor-toggle-link&quot;' href='javascript:void(0)'><data:postCommentMsg/></a></h4>
    <p><data:blogCommentMessage/></p>
    <data:blogTeamBlogMessage/>
    <a expr:href='data:post.commentFormIframeSrc' id='comment-editor-src'/>
    <iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='410' id='comment-editor' name='comment-editor' src='' style='display: none' width='100%'/>
    <b:else/>
    <p><data:blogCommentMessage/></p>
    <data:blogTeamBlogMessage/>
    <a expr:href='data:post.commentFormIframeSrc' id='comment-editor-src'/>
    <iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='430' id='comment-editor' name='comment-editor' src='' width='100%'/>
    </b:if>
    <data:post.friendConnectJs/>
    <data:post.cmtfpIframe/>
    <script type='text/javascript'>
    BLOG_CMT_createIframe(&#39;<data:post.appRpcRelayPath/>&#39;, &#39;<data:post.communityId/>&#39;);
    </script>
    </div>
    </b:includable>


    menjadi

    <b:includable id='comment-form' var='post'>
    <div class='comment-form-lebar'>
    <a name='comment-form'/>
    <b:if cond='data:mobile'>
    <h4 id='comment-post-message'>
    <a expr:id='data:widget.instanceId + &quot;_comment-editor-toggle-link&quot;' href='javascript:void(0)'><data:postCommentMsg/></a></h4>
    <p><data:blogCommentMessage/></p>
    <data:blogTeamBlogMessage/>
    <a expr:href='data:post.commentFormIframeSrc' id='comment-editor-src'/>
    <iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='410' id='comment-editor' name='comment-editor' src='' style='display: none' width='100%'/>
    <b:else/>
    <p><data:blogCommentMessage/></p>
    <data:blogTeamBlogMessage/>
    <a expr:href='data:post.commentFormIframeSrc' id='comment-editor-src'/>
    <iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='430' id='comment-editor' name='comment-editor' src='' width='100%'/>
    </b:if>
    <data:post.friendConnectJs/>
    <data:post.cmtfpIframe/>
    <script type='text/javascript'>
    BLOG_CMT_createIframe(&#39;<data:post.appRpcRelayPath/>&#39;, &#39;<data:post.communityId/>&#39;);
    </script>
    </div>
    </b:includable>


    Sebetulnya dari kode sebanyak di atas yang diganti hanya
    <div class='comment-form'>

    dengan
    <div class='comment-form-lebar'>

    CSSnya
    div.comment-form-lebar{
    width: 500px; /* lebar form*/
    }
    div.comment-form-lebar p{background:#000;
    color: #fff;text-align: left;
    }


    makasih banyak-sebanyakbanyaknya bang :) .
    blog ini emang bener-bener inspiratif

    By Blogger Unknown, at Tuesday, January 15, 2013 at 2:54:00 AM GMT+7  

  • Kok, di blog aku gak fungsi sih kak, aku memakai komentar dengan script ini :

    <script src='https://sagitasoft.googlecode.com/svn/trunk/js/coments-sagita.js' type='text/javascript'/>

    Tetapi jika memakai script itu berfungsi kak, kira-kira apakah ada yang salah ya ?

    By Blogger IRIL SAGITA, at Tuesday, January 29, 2013 at 9:44:00 AM GMT+7  

  • Tidak memakai script itu maksut saya.

    By Blogger IRIL SAGITA, at Tuesday, January 29, 2013 at 9:47:00 AM GMT+7  

  • G jadi kak, aku udah nemuin caranya, agak sulit memang, tapi akhirnya ketemu juga caranya, terima kasih ?

    By Blogger IRIL SAGITA, at Wednesday, January 30, 2013 at 10:01:00 PM GMT+7  

  • Setahu Saya area komentar di blogmu sudah tidak standar/sudah dimodifikasi total, jadi eksekusi script harus diset lagi, menyesuaikan dengan markup HTML komentarmu:

    // Jalankan fungsi!
    // Seleksi elemen induk dengan id='cm_wrap' ...
    // dan periksa semua konten paragraf di dalamnya!
    blockLinks('cm_wrap', 'p');

    By Blogger Taufik Nurrohman, at Wednesday, January 30, 2013 at 10:14:00 PM GMT+7  

  • Betul kak, masalahnya cuma salah penempatan areanya, yang tadinya di area comment_body menjadi cm_wrap (keseluruhan area comment).

    By Blogger IRIL SAGITA, at Wednesday, January 30, 2013 at 10:56:00 PM GMT+7  

  • pusin....... :Ozz bisa langsung gak gan satuin semua

    By Anonymous Anonymous, at Thursday, February 7, 2013 at 2:09:00 PM GMT+7  

  • Bang mau tanya,
    Caranya masukkin link yang udah terpasang trik no_live_links ini gimana yah??

    By Blogger Unknown, at Friday, February 15, 2013 at 10:53:00 PM GMT+7  

  • Tidak bisa. Cuma bisa memakai tautan/link mati saja.

    By Blogger Taufik Nurrohman, at Saturday, February 16, 2013 at 7:46:00 AM GMT+7  

  • kalau membuat seperti ini gimana kang ??

    http://2.bp.blogspot.com/-bw-wT_R7yZM/UVVUwKGZYWI/AAAAAAAAAR0/URlPZXnGomw/s1600/Screenshot_1.jpg

    By Blogger Unknown, at Friday, March 29, 2013 at 3:46:00 PM GMT+7  

  • mas saya pasang kode

    <script type='text/javascript'>
    //<![CDATA[
    function blockLinks(parentID, children) {
    var parent = document.getElementById(parentID),
    content = parent.getElementsByTagName(children);
    for(var i = 0; i < content.length; i++) {
    // Saya menggunakan pengukur berupa tag penutup, karena tag pembuka tidak tegas
    // Tag <a> tidak selalu diawali dengan atribut 'href',
    // sehingga mengecek indeks dengan menuliskan content[i].indexOf('<a href=\"') menjadi kurang akurat
    // Lebih baik gunakan tag penutup sebagai penanda adanya tautan di dalam konten
    if(content[i].innerHTML.indexOf('</a>') !== -1) {
    content[i].innerHTML = "<mark>No live link!!!</mark> Dilarang nyepam di sini!";
    content[i].className = "spammer-detected";
    }
    }
    }
    //>
    </script>

    di atas </body> tapi koq error

    Template Anda tidak dapat diparse karena tidak well-formed. Harap pastikan bahwa semua elemen XML ditutup dengan benar. <br/> Pesan error XML: XML document structures must start and end within the same entity.

    maaf saya tidak tahu apa",tentang coding..

    By Blogger Unknown, at Sunday, April 7, 2013 at 10:54:00 AM GMT+7  

  • Hal itu biasanya disebabkan karena saat meloading Script, salah satu bagiannya ada yang gagal diloading.
    Solusinya, coba pindahkan script itu ke bagian atas di antara semua script yang ada, Atau simpan di area </body>

    Yah... kalau tetep gak bisa, ???
    Soalnya yang saya berhasil :)

    By Blogger budkalon, at Friday, April 12, 2013 at 2:00:00 PM GMT+7  

  • Ah, mau ngelanjutin tentang tombol di atas formulir komentar, apakah itu memakai Javascript atau kode HTML? :D

    By Blogger budkalon, at Friday, April 12, 2013 at 2:03:00 PM GMT+7  

  • Coba ganti kode //> menjadi seperti ini: //]]>

    Tapi saya gak yakin bisa sih, silakan aja dicoba :)

    By Blogger budkalon, at Friday, April 12, 2013 at 2:11:00 PM GMT+7  

  • Mas taufik,,kaloq pake' jQuery ngasih pengecualian URL gimana,,?? soalnya saya pake reply komentar yg lama,,jadinya pas balas komentar @(blank) jadi ikut kena block..Terima Kasih

    By Blogger Unknown, at Monday, April 22, 2013 at 4:27:00 PM GMT+7  

  • Pasangnya dimana gan?

    By Anonymous Anonymous, at Sunday, April 28, 2013 at 11:00:00 AM GMT+7  

  • Kang Taufik :\
    Mau tahu donk, cara supaya saat ada pengunjung yang berkomentar mengandung kata O--O--T atau Outh Ofh Topich, nah jika di dalam kotak komentar ditemukan kata itu, maka akan otomatis dibungkus oleh tag <del> dan kata terlarangnya pun dapat akan dibungkus oleh tag <mark><a href="#">Kata terlarang</a></mark> (Seperti di blog ini) Caranya gimana kang? :( Mohon pencerahannya

    By Blogger budkalon, at Monday, May 6, 2013 at 7:27:00 PM GMT+7  

  • content[i].innerHTML =
    content[i].innerHTML.replace(/( |>)oot(<| )/ig, "$1<mark>OOT</mark>$2");


    Demo: http://jsfiddle.net/tovic/2WLCU/111/

    By Blogger Taufik Nurrohman, at Monday, May 6, 2013 at 8:15:00 PM GMT+7  

  • EHHH!!!? Terima kasih!!!! Akan saya kembangkan :D

    By Blogger budkalon, at Monday, May 6, 2013 at 8:31:00 PM GMT+7  

  • Sedikit bertanya, script ini untuk sebelum posting atau sesudah terposting komentarnya ?

    By Blogger Bowo Ekowidodo, at Wednesday, May 8, 2013 at 8:17:00 PM GMT+7  

  • Bantu jawab ah... pake HTML sob, cari di om guugel ada caranya ko.. coba aja keywordnya : Membuat Tombol pada Pesan Formulir Komentar

    By Blogger Kang Ismet, at Sunday, May 12, 2013 at 12:34:00 AM GMT+7  

  • maaf test oot

    By Blogger Kang Ismet, at Sunday, May 12, 2013 at 1:18:00 PM GMT+7  

  • Berhasil Dengan Sukses Mas Taufik ,
    Anda Gimana Caranya Menambahkan Tulisan "Text Yang Ditandai Tidak Diperbolehkan Lagi" Setelah Text Komentar ,

    By Anonymous Anonymous, at Sunday, May 12, 2013 at 2:03:00 PM GMT+7  

  • Kang.. kalau kita membuat daftar kata-kata misal: ju-di , to-gel, ju-al dll.... terus apabila ada komentar yang mengandung kata itu, semua nya digantikan dengan peringatan... bukan hanya kata2 yang ditandai saja... gimana kang?

    By Blogger Kang Ismet, at Sunday, May 12, 2013 at 9:05:00 PM GMT+7  

  • maksudnya bekerja nya ya mas? komentar terlamapun,mkalau mengandung link aktif, akan otomatis berubah ketika dipasangi script ini.

    By Blogger Kang Ismet, at Sunday, May 12, 2013 at 9:18:00 PM GMT+7  

  • content[i].innerHTML =
    content[i].innerHTML
    .replace(/(^| |>)(kata1|kata2|kata3)(<| |$)/ig, "$1<mark>$2</mark>$3");

    By Blogger Taufik Nurrohman, at Monday, May 13, 2013 at 10:12:00 AM GMT+7  

  • tengkyu2... walaupun harus dipelajari lagi :)

    By Blogger Kang Ismet, at Monday, May 13, 2013 at 1:12:00 PM GMT+7  

  • Ok Mas untuk menontaktifkan link hidup didalam komentar.Tentunya cara ini sangat aman melindungi komentar blog dari serangan spammer. :)

    By Anonymous Anonymous, at Thursday, May 23, 2013 at 10:24:00 PM GMT+7  

  • kalau script yang lengkapnya gimana untuk kata1|kata2|kata3| soalnya saya coba gabung dengan script diatas ga bisa mas...

    By Blogger Semar Badranaya, at Wednesday, May 29, 2013 at 1:39:00 PM GMT+7  

  • Prinsipnya ini setelah terposting ya? Ya sudah sudah ngerti maksudnya, saya kira bisa blocking sebelum posting komentar :D ..

    By Blogger Bowo Ekowidodo, at Wednesday, May 29, 2013 at 4:46:00 PM GMT+7  

  • nyambung lagi mas... maksud saya bukan teks terpilih saja, tapi semua tulisan digantikan dengan peringatan.. (seperti No Live Links) semuanya diganti

    kalau kode di atas hasilnya http://jsfiddle.net/kangismet/9DYFx/2/

    By Blogger Kang Ismet, at Wednesday, May 29, 2013 at 11:57:00 PM GMT+7  

  • function blockLinks(parentID, children) {
    var parent = document.getElementById(parentID),
    content = parent.getElementsByTagName(children);
    for (var i = 0; i < content.length; i++) {
    var regex = /(^| |>)(oot|togel|jual|beli|blackberry)(<| |$)/g,
    html = content[i].innerHTML;
    content[i].innerHTML = (regex.test(html)) ? '<del>' + html.replace(regex, "$1<mark>$2</mark>$3") + '</del><br><br>Kata-kata yang ditandai tidak boleh ada di dalam komentar.' : html;
    }
    }


    Demo: http://jsfiddle.net/tovic/9DYFx/4/

    By Blogger Taufik Nurrohman, at Thursday, May 30, 2013 at 8:13:00 AM GMT+7  

  • tengkyu masbrow... emang keyen agan satu ini..
    stu lagi ah request, kalau pengen kaya Demo dibawah gimana? saya edit NO-live link, cuma saya baru masukin satu kata saja, gimana caranya memasukan beberapa pilihan kata?

    cek DEMO http://jsfiddle.net/kangismet/9DYFx/5/

    By Blogger Kang Ismet, at Thursday, May 30, 2013 at 9:28:00 AM GMT+7  

  • Sama saja. Pakai regex .test()

    if (/(^| |>)(shap|ship|shup|shep|shop)(<| |$)/i.test(content[i].innerHTML)) { ... }

    By Blogger Taufik Nurrohman, at Thursday, May 30, 2013 at 10:45:00 AM GMT+7  

  • makasih masbro.. it's work like a charm :)

    By Blogger Kang Ismet, at Friday, May 31, 2013 at 8:07:00 PM GMT+7  

  • lawan spammer .

    By Anonymous Anonymous, at Sunday, June 9, 2013 at 11:18:00 PM GMT+7  

  • harus pasang JQuery dulu? punya saya belum pake jquery

    By Blogger sekadau, at Friday, June 21, 2013 at 11:25:00 AM GMT+7  

  • Karena saya kurang paham soal JavaScript , jadi saya mo nanya nih . Awalnya kan saya pasang yang ada di point pertama posting ini dan work ( semua link di block sempurna ) , nah trus saya pasang lagi script soal o-o-t yang ada di koment . work si , cuman ko script yang pertama jadi gak fungsi yak ? bisa dibantu .... ?

    By Anonymous Anonymous, at Saturday, July 20, 2013 at 3:03:00 AM GMT+7  

  • saya sudah lihat kodenya, itu kenapa kamu campur adukan? javascript scroll dengan javascript commentblock jangan di jadikan satu jelas aja gak berfungsi -______-

    By Blogger Unknown, at Saturday, July 20, 2013 at 8:58:00 AM GMT+7  

  • mas gimana supaya script ini block link ini mengganti semua teks pada komentar.
    $(".comment_body p").find("a:not(.allow)").each(function (c) {
    c = $($(this).parent()).html();
    txtContents = c.replace(/<br>/ig, "\n").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/<pre>/ig, '<i rel="pre">').replace(/<code>/ig, '<i rel="code">').replace(/<blockquote>/ig, '<b rel="quote">').replace(/<h3>/ig, '<b rel="h3">').replace(/<\/(code|pre)>/ig, "</i>").replace(/<\/(blockquote|h3)>/ig, "</b>").replace(/<a\b[^>]*>(.*?)<\/a>/i, "").replace(/<img\b[^>]*>/i, "");
    $($(this).parent()).html("<mark>No live link!!!</mark> Dilarang nyepam disini!<br>" + "<br><br><cite class=\'note\'>Mohon maaf, komentar anda terblok otomatis oleh sistem kami.</cite>").closest(".comment_wrap").find(".comment_body p > a").remove()
    });
    Soalnya script block link ini hanya mengganti teks yang terdapat link.

    By Blogger Saeful Rahman, at Tuesday, August 6, 2013 at 6:02:00 AM GMT+7  

  • $(".comment_body p").each(function() {
    if ($(this).find("a:not(.allow)").length) {
    $(this).html('No spam!');
    }
    });

    By Blogger Taufik Nurrohman, at Sunday, August 11, 2013 at 8:36:00 AM GMT+7  

  • Maaf kang, saya dari dulu pengen tahu, sebenernya .closest('') itu buat apa sih fungsinya?

    By Blogger budkalon, at Monday, August 12, 2013 at 6:19:00 PM GMT+7  

  • sip mas. Cara gabungin ke3 script ini gimana ya ? soalnya kinerja js nya hampir sama.
    JS 1
    function blockNotAllowed(parentID, children) {
    var parent = document.getElementById(parentID),
    content = parent.getElementsByTagName(children);
    for (var i = 0; i < content.length; i++) {
    var regex = /(^| |>)(oot|OOT|keluar topik|out of topic|diluar topik|di luar topik|minta template|bagi template|share template|minta script)(nya|"|'|&quot;|&#39;|\,|\.|\!|\?|\:|\;|\)|\/|<| |$)/g,
    html = content[i].innerHTML;
    content[i].innerHTML = (regex.test(html)) ? '' + html.replace(regex, "$1<mark><a class=\'allow\' href=\'/p/forum.html\' target=\'_blank\' title=\'Kata ini tidak diperbolehkan ada di dalam komentar\'>$2<\/a></mark>$3") + '<br><br><cite class=\'note\'>Kata-kata yang ditandai sudah tidak diperbolehkan dalam komentar.</cite>' : html
    }
    }
    blockNotAllowed('comment_block', 'p')

    JS 2
    function blockNotAllowed(parentID, children) {
    var parent = document.getElementById(parentID),
    content = parent.getElementsByTagName(children);
    for (var i = 0; i < content.length; i++) {
    if (/(^| |>)(Menjual|Jual|Dijual|Rp.|togel|KABOIRENG|Shop|shop)(nya|"|'|&quot;|&#39;|\,|\.|\!|\?|\:|\;|\)|\/|<| |$)/i.test(content[i].innerHTML)) {
    content[i].innerHTML = 'Ups!!! Dilarang ngiklan di kolom komentar.' + '<br><br><cite class=\'note\'>Mohon maaf, komentar anda terblok otomatis oleh sistem kami.</cite>'
    }
    }
    }
    blockNotAllowed('comment_block', 'p');

    JS 3
    function blockNotAllowed(parentID, children) {
    var parent = document.getElementById(parentID),
    content = parent.getElementsByTagName(children);
    for (var i = 0; i < content.length; i++) {
    if (/(^| |>)(anjing|Anjing|Goblog|goblok|bokep|goblok|Goblok|memek|Memek|kontol|Kontol)(nya|"|'|&quot;|&#39;|\,|\.|\!|\?|\:|\;|\)|\/|<| |$)/i.test(content[i].innerHTML)) {
    content[i].innerHTML = 'Ups!!! Maaf komentar tidak ditampilkan, karena alasan tertentu.' + '<br><br><cite class=\'note\'>Mohon maaf, komentar anda terblok otomatis oleh sistem kami.</cite>'
    }
    }
    }
    blockNotAllowed('comment_block', 'p');
    .

    By Blogger Saeful Rahman, at Saturday, August 17, 2013 at 11:32:00 AM GMT+7  

  • This comment has been removed by the author.

    By Blogger Saeful Rahman, at Saturday, August 17, 2013 at 11:34:00 AM GMT+7  

  • function blockNotAllowed(parentID, children) {
    if (!document.getElementById(parentID)) return;
    var parent = document.getElementById(parentID),
    content = parent.getElementsByTagName(children);
    for (var i = 0; i < content.length; i++) {

    var regex = /(^| |>)(oot|OOT|keluar topik|out of topic|diluar topik|di luar topik|minta template|bagi template|share template|minta script)(nya|"|'|&quot;|&#39;|\,|\.|\!|\?|\:|\;|\)|\/|<| |$)/g,
    html = content[i].innerHTML;
    content[i].innerHTML = (regex.test(html)) ? '' + html.replace(regex, "$1<mark><a class=\'allow\' href=\'/p/forum.html\' target=\'_blank\' title=\'Kata ini tidak diperbolehkan ada di dalam komentar\'>$2<\/a></mark>$3") + '<br><br><cite class=\'note\'>Kata-kata yang ditandai sudah tidak diperbolehkan dalam komentar.</cite>' : html;
    if (/(^| |>)(Menjual|Jual|Dijual|Rp.|togel|KABOIRENG|Shop|shop)(nya|"|'|&quot;|&#39;|\,|\.|\!|\?|\:|\;|\)|\/|<| |$)/i.test(content[i].innerHTML)) {
    content[i].innerHTML = 'Ups!!! Dilarang ngiklan di kolom komentar.' + '<br><br><cite class=\'note\'>Mohon maaf, komentar anda terblok otomatis oleh sistem kami.</cite>';
    }
    // ...
    // ...
    // ...

    }
    } blockNotAllowed('comment_block', 'p');

    By Blogger Taufik Nurrohman, at Saturday, August 17, 2013 at 12:30:00 PM GMT+7  

  • Sya juga sudah coba cara ini mas, tapi malah gk berfungsi. Kalau boleh tahu susunan yg benar giman ? :D

    By Blogger Saeful Rahman, at Saturday, August 17, 2013 at 1:57:00 PM GMT+7  

  • Berhasil mas, sya kurang teliti dg tag "}". :D
    :-bd

    By Blogger Saeful Rahman, at Saturday, August 17, 2013 at 6:56:00 PM GMT+7  

  • Oh ya mas, satu lagi. Apakah bisa membuat pengecualian pada class allow.
    if (content[i].innerHTML.indexOf('</a>') !== -1) {
    content[i].innerHTML = "<mark>No live link!!!</mark> Dilarang nyepam di sini!";
    content[i].className = "spammer-detected"
    }


    Soalnya pada JS oot saya membuat link dg class allow.
    var regex = /(^| |>)(oot|OOT|keluar topik|out of topic|diluar topik|di luar topik|minta template|bagi template|share template|minta script)(nya|"|'|&quot;|&#39;|\,|\.|\!|\?|\:|\;|\)|\/|<| |$)/g,
    html = content[i].innerHTML;
    content[i].innerHTML = (regex.test(html)) ? '' + html.replace(regex, "$1<mark><a class=\'allow\' href=\'/p/forum.html\' target=\'_blank\' title=\'Kata ini tidak diperbolehkan ada di dalam komentar\'>$2<\/a></mark>$3") + '<br><br><cite class=\'note\'>Kata-kata yang ditandai sudah tidak diperbolehkan dalam komentar.</cite>' : html;

    By Blogger Saeful Rahman, at Sunday, August 18, 2013 at 3:40:00 PM GMT+7  

  • pada bagian css nya lebih efektif dan aman kalo pake widh: 100% masbero :D

    div.comment-form-lebar{
    width: 100%; /* lebar form*/
    }
    div.comment-form-lebar p{background:#000;
    color: #fff;text-align: left;
    }

    By Anonymous Anonymous, at Monday, September 2, 2013 at 1:02:00 PM GMT+7  

  • kang mohon bantuannya dong.., klo untuk menambahkan area blocklink supaya tidak hanya di kotak komentar saja bisa gak?seumpama saya punya element sidebar atau apalah gitu, nah nambahin script blocknya gmn ya?

    By Blogger Ariana, at Friday, December 6, 2013 at 9:40:00 PM GMT+7  

  • mas, gimana ngatasi ini?
    [img]http://3.bp.blogspot.com/-eh7Ojkb2cOY/UrHv_639N-I/AAAAAAAABgI/H6OPRH0WNTg/s1600/Capture3.PN[/img]

    By Blogger Unknown, at Thursday, December 19, 2013 at 1:58:00 AM GMT+7  

  • Biasanya salahnya ada di ID kontainer.

    By Blogger Taufik Nurrohman, at Thursday, December 19, 2013 at 12:23:00 PM GMT+7  

  • mas saya memakai ini
    function blockLinks(d, f) {
    if (document.getElementById(d)) {
    for (var b = document.getElementById(d).getElementsByTagName(f), a = 0; a < b.length; a++) {
    var e = /(^| |>|\/|\(|"|'|&quot;|&#39;|\[)(OOT|OTT|keluar topik|out of topic|off topic|diluar topik|di luar topik|tidak sesuai dengan pembahasan|tidak sesuai topik|tidak sesuai dengan topik|menyimpang dari topik|minta template|blackberry|nokia|acer|samsung|togel|ready stock|menawarkan produk|produk yang ditawarkan|produk yang kami tawarkan|promo|jual|numpang promo)(\]|nya|"|'|&quot;|&#39;|\,|\.|\!|\?|\:|\;|\)|\/|<| |$)/ig,
    c = b[a].innerHTML;
    b[a].innerHTML = e.test(c) ? "<del>" + c.replace(e, "$1<mark>$2</mark>$3") + "</del><br><br><p class='comment-spam'><cite>Maaf komentar anda telah ditandai. Ini terjadi karena kemungkinan komentar anda mengiklankan produk. Gunakanlah Iklan Baris Gratis untuk mengiklankan produk anda, atau pasang iklan premium di blog ini.</cite></p>" : c;
    if (b[a].innerHTML.indexOf("</a>") !== -1) {
    b[a].innerHTML = "Maaf komentar anda terhapus otomatis oleh sistem kemungkinan ini terjadi karena terdapat link aktif pada komentar anda. Sebaiknya link ditulis berupa teks URL biasa. Terima kasih.", b[a].className = "comment-spam"
    }
    }
    }
    }
    blockLinks("comments-area", "p");

    tapi semua url yang baik penulisannya berupa link hidup atau menyisipkan link seperti menyisipkan tautan dengan aman.. semuanya terblokir.. kira-kira apa yang salah dari JS di atas agar tautan yang terblokir hanya berupa link hidup saja..

    By Blogger you, at Sunday, January 12, 2014 at 12:48:00 PM GMT+7  

  • kalo mencoret kata terlarang ini diubah menjadi Jqeury gmna contoh scriptnya mas :

    function blockLinks(parentID, children) {
    var parent = document.getElementById(parentID),
    content = parent.getElementsByTagName(children);
    for (var i = 0; i < content.length; i++) {
    var regex = /(^| |>)(oot|togel|jual|beli|blackberry)(<| |$)/g,
    html = content[i].innerHTML;
    content[i].innerHTML = (regex.test(html)) ? '<del>' + html.replace(regex, "$1<mark>$2</mark>$3") + '</del><br><br>Kata-kata yang ditandai tidak boleh ada di dalam komentar.' : html;
    }
    }

    By Blogger Unknown, at Wednesday, February 18, 2015 at 9:15:00 AM GMT+7  

  • Begini mas…

    (function($) {
    $.fn.filterComments = function() {
    return this.each(function() {
    var regex = /(^|\s|>)(OOT|togel|jual|beli|blackberry)(<|\s|$)/,
    html = this.innerHTML;
    if (regex.test(html)) {
    this.innerHTML = '<del>' + html.replace(regex, "$1<mark>$2</mark>$3") + '</del><br><br>Kata-kata yang ditandai tidak diperbolehkan ada di dalam komentar.';
    this.className += ' spammer-detected';
    }
    });
    };
    })(jQuery);


    Cara pakai:

    $(function() {
    $('#comment-holder p').filterComments();
    });

    By Blogger Taufik Nurrohman, at Wednesday, February 18, 2015 at 12:43:00 PM GMT+7  

  • By Blogger Taufik Nurrohman, at Wednesday, February 18, 2015 at 12:47:00 PM GMT+7  

  • <b:if cond='data:comment.author == data:post.author'>

    /2011/08/membedakan-tampilan-komentar.html

    By Blogger Taufik Nurrohman, at Wednesday, February 18, 2015 at 12:57:00 PM GMT+7  

  • kang,di template saya kok gak work jsnya?
    mohon bantuanya kang...

    function blockLinks(parentID, children) {
    var parent = document.getElementById(parentID), content;
    if (!parent) return;
    content = parent.getElementsByTagName(children);
    for (var i = 0, len = content.length; i < len; ++i) {
    if (content[i].innerHTML.indexOf('</a>') !== -1) {
    content[i].innerHTML = '<mark>No live link!!!</mark> Dilarang nyepam di sini!';
    content[i].className += ' spammer-detected';
    }
    }
    }

    // Jalankan fungsi!
    blockLinks('comment-holder', 'p');

    By Blogger Reo Adam, at Tuesday, March 10, 2015 at 9:52:00 PM GMT+7  

  • kiye keprimen kang taufik?
    jal ditiliki bloge nyonge jan.....
    tp aja diguyu ya,judul bloge ora patut....ning ilmune cetek banget koh.
    kudu merguru aring rika kiye lah

    By Blogger Reo Adam, at Wednesday, March 11, 2015 at 8:20:00 PM GMT+7  

  • sudah jadi kang...hehe
    ternyata untuk template yg saya pake,elemen induknya pake ID
    blockLinks('comment_block', 'p');
    bukan
    blockLinks('comment-holder', 'p');

    matur tengkiyu....

    By Blogger Reo Adam, at Thursday, March 12, 2015 at 6:38:00 PM GMT+7  

  • mas kalo di sebelahnya nama komentator di tambahin tulisan "spam" caranya gimana :D

    By Blogger Unknown, at Saturday, July 9, 2016 at 8:49:00 AM GMT+7  

  • saya coba tambahin seperti ini $(".comment-header").append("<span class='spam'>Spam</span>"); tapi hasilnya muncul semua disetiap komentar mas :D hehehe..

    By Blogger Unknown, at Saturday, July 9, 2016 at 8:55:00 AM GMT+7  

  • $('.spammer-detected').closest('li').find('.comment-header').append('<span class="spam">Spam</span>');

    By Blogger Taufik Nurrohman, at Thursday, July 14, 2016 at 8:19:00 PM GMT+7  

  • yeahh.. yang ini berhasil mulus :-bd

    By Blogger Unknown, at Friday, July 15, 2016 at 9:55:00 AM GMT+7  

  • Versi javascript murni >> [url=http://jsfiddle.net/sekedus/vnpk1L7c/]jsfiddle[/url]

    By Blogger Sekedus, at Thursday, February 1, 2018 at 7:02:00 PM GMT+7  

  • Seperti ini juga bisa:

    function blockLinks(parentID, children) {
    var parent = document.getElementById(parentID),
    content = parent.getElementsByTagName(children);
    for (var i = 0; i < content.length; i++) {
    if (content[i].innerHTML.indexOf('</a>') !== -1) {
    content[i].innerHTML = content[i].innerHTML.replace(/<a(?:\s[^<>]*?)?>([\s\S]*)<\/a>/g, '$1');
    }
    }
    }

    By Blogger Taufik Nurrohman, at Friday, February 2, 2018 at 7:39:00 PM GMT+7  

  • klo menggunakan regex saya ambil dari sini >>
    [url=https://stackoverflow.com/a/20867743/7598333]stackoverflow[/url]

    By Blogger Sekedus, at Friday, February 2, 2018 at 7:56:00 PM GMT+7  

  • saya mencoba merubah regex dengan membuat pengecualian untuk tag a yang mengandung #c menjadi seperti ini: <a[^>#c]*>(.*?)<\/a> tapi tidak berhasil.

    malah terbaca pengecualian # sendiri dan c sendiri.

    bagaimana caranya terbaca pengecualian 2 huruf/angaka sekaligus #c

    Demo: [url=http://jsfiddle.net/2WLCU/136/]http://jsfiddle.net/2WLCU/136/[/url]

    terkait: [url=#c8428668621145814505]#c8428668621145814505[/url]

    By Blogger Sekedus, at Saturday, February 3, 2018 at 4:49:00 PM GMT+7  

  • Pakai caramu sebelumnya, cuma selektornya saja yang diganti:

    var link = document.querySelectorAll('a:not([href^="#"])');

    Demo: http://jsfiddle.net/vnpk1L7c/1

    By Blogger Taufik Nurrohman, at Saturday, February 3, 2018 at 7:01:00 PM GMT+7  

Post a Comment



<< Home