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: , , , ,

100 Comments:

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

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

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

oo ini yahh cara peletakkan kodenyaa...

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

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

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

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..

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

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/

 
At Tuesday, July 31, 2012 at 9:18:00 AM GMT+7, Anonymous Anonymous said...

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

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

cara makenya gimana mas ? :(

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

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

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

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

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

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 ??

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

Pakai JQuery lebih gampang:

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


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

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

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 ...

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

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

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

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

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

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

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

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

:( ??? :(

 
At Thursday, August 30, 2012 at 7:12:00 PM GMT+7, Anonymous Anonymous said...

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

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

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...

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

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

 
At Saturday, November 10, 2012 at 1:50:00 PM GMT+7, Blogger Unknown said...


contohnya seperti ini

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

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

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

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/

 
At Saturday, November 10, 2012 at 10:36:00 PM GMT+7, Blogger Unknown said...

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

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

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

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

Sukses cuY !! \o/

Keren" tutornya.

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

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

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

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.

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

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

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

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 :) .

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

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';

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

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

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

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 ?

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

Tidak memakai script itu maksut saya.

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

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

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

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');

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

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

 
At Thursday, February 7, 2013 at 2:09:00 PM GMT+7, Anonymous Anonymous said...

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

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

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

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

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

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

kalau membuat seperti ini gimana kang ??

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

 
At Sunday, April 7, 2013 at 10:54:00 AM GMT+7, Blogger Unknown said...

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..

 
At Friday, April 12, 2013 at 2:00:00 PM GMT+7, Blogger budkalon said...

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 :)

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

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

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

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

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

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

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

 
At Sunday, April 28, 2013 at 11:00:00 AM GMT+7, Anonymous Anonymous said...

Pasangnya dimana gan?

 
At Monday, May 6, 2013 at 7:27:00 PM GMT+7, Blogger budkalon said...

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

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

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


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

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

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

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

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

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

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

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

maaf test oot

 
At Sunday, May 12, 2013 at 2:03:00 PM GMT+7, Anonymous Anonymous said...

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

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

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?

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

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

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

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

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

tengkyu2... walaupun harus dipelajari lagi :)

 
At Thursday, May 23, 2013 at 10:24:00 PM GMT+7, Anonymous Anonymous said...

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

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

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

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

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

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

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/

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

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/

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

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/

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

Sama saja. Pakai regex .test()

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

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

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

 
At Sunday, June 9, 2013 at 11:18:00 PM GMT+7, Anonymous Anonymous said...

lawan spammer .

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

harus pasang JQuery dulu? punya saya belum pake jquery

 
At Friday, July 5, 2013 at 2:04:00 PM GMT+7, Blogger Unknown said...

kang, tomol konversi kodenya kok ikut kena mark ya??

 
At Saturday, July 20, 2013 at 3:03:00 AM GMT+7, Anonymous Anonymous said...

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 .... ?

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

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

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

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.

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

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

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

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

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

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');
.

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

This comment has been removed by the author.

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

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');

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

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

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

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

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

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;

 
At Monday, September 2, 2013 at 1:02:00 PM GMT+7, Anonymous Anonymous said...

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;
}

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

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?

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

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

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

Biasanya salahnya ada di ID kontainer.

 
At Sunday, January 12, 2014 at 12:48:00 PM GMT+7, Blogger you said...

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..

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

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;
}
}

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

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();
});

 
At Wednesday, February 18, 2015 at 12:47:00 PM GMT+7, Blogger Taufik Nurrohman said...

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

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

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

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

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

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');

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

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

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

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....

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

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

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

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

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

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

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

yeahh.. yang ini berhasil mulus :-bd

 
At Thursday, February 1, 2018 at 7:02:00 PM GMT+7, Blogger Sekedus said...

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

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

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');
}
}
}

 
At Friday, February 2, 2018 at 7:56:00 PM GMT+7, Blogger Sekedus said...

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

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

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]

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

Pakai caramu sebelumnya, cuma selektornya saja yang diganti:

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

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

 

Post a Comment

<< Home