No Live Links · Mencegah Tautan Aktif Masuk ke dalam Komentar
Tabel Konten
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.
100 Komentar
Putra
pernah mbaca ini dikomentarnya 7bloggers :D
tak cobane sik mas.
abang ichal
oo ini yahh cara peletakkan kodenyaa...
Rosyd Aqbar
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
Unknown
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..
Taufik Nurrohman
Membatasi komentar admin tidak bisa, tapi kalau membuat pengecualian pada URL (hash) permalink komentar bisa:
Demo: http://jsfiddle.net/tovic/2WLCU/2/
Anonim
ini yang saya cari,
makasih sharenya,
mohon ijin copas gan
Adi Nugraha Y
cara makenya gimana mas ? :(
hot info news
mas, koq di blog saya ga bisa ya, "kodenya saya tarok diatas "body" seperti komentar mas taufik diatas??
Taufik Nurrohman
Di atas
</body>
, bukan di atas<body>
Yusril Ibnu Maulana
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 ??
Taufik Nurrohman
Pakai JQuery lebih gampang:
Demo: http://jsfiddle.net/tovic/2WLCU/12/
Yusril Ibnu Maulana
jadinya kan begini ???
tapi kok gk work ??
contoh lihat di : http://yuzsite.blogspot.com/2011/11/tukeran-link.html
mohon pencerahanya ...
Taufik Nurrohman
Punyamu nggak pake
#comment-holder
, tapi.cm_wrap
:Yusril Ibnu Maulana
Gk work Juga... :(, jadi bagaimana ??
Taufik Nurrohman
Jadi rame! HOREEEE!!!! \o/ \o/ \o/
Yusril Ibnu Maulana
:( ??? :(
Unknown
kang, tomol konversi kodenya kok ikut kena mark ya??
Unknown
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
sekadau
harus pasang JQuery dulu? punya saya belum pake jquery
Sekedus
Versi javascript murni >> jsfiddle
Taufik Nurrohman
Seperti ini juga bisa:
Sekedus
klo menggunakan regex saya ambil dari sini >>
stackoverflow
Sekedus
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 danc
sendiri.bagaimana caranya terbaca pengecualian 2 huruf/angaka sekaligus
#c
Demo: http://jsfiddle.net/2WLCU/136/
terkait: #c8428668621145814505
Taufik Nurrohman
Pakai caramu sebelumnya, cuma selektornya saja yang diganti:
Demo: http://jsfiddle.net/vnpk1L7c/1
Saung Link
Wah ni dia yang saya cari. blogku kebanjiran spam nih.
Unknown
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...
Unknown
akhirnya nemu juga obatnya untuk spam...
thanks sob... salam kenal.
Unknown
contohnya seperti ini
Unknown
bang, gimana caranya kalo ada yang berkomentar dengan link hidup secara otomatis terhapus dan ada salinan komentarnya seperti contoh link komentar yang di atas
Taufik Nurrohman
Pertama-tama simpan konten originalnya di dalam variabel sebelum dihapus. Misalnya seperti ini:
Lalu ganti konten komentar dengan elemen beru berupa peringatan dan salinan dari konten yang lama:
Demo: http://jsfiddle.net/tovic/2WLCU/50/
Unknown
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
Unknown
kaga jadi ngajak stresnya bang, udah ketemu letak kesalahannya. ternyata CSSnya kaga ke ajak :D jadi malu nih 0:)
Unknown
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??
soalnya kalo pemasangan melalui menu setelan/Pesan Formulir Komentar kaga bisa nyimpen teks berformat tag.
Taufik Nurrohman
Tidak bisa dari situ. Harus dari dalam template secara langsung.
Unknown
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 :) .
budkalon
Ah, mau ngelanjutin tentang tombol di atas formulir komentar, apakah itu memakai Javascript atau kode HTML? :D
Kang Ismet
Bantu jawab ah... pake HTML sob, cari di om guugel ada caranya ko.. coba aja keywordnya : Membuat Tombol pada Pesan Formulir Komentar
Viyan Pradita
Sukses cuY !! \o/
Keren" tutornya.
Unknown
sy msh newbie mas,script di atas penempatannya di mana yah? mohon pencerahannya. mksh
IRIL SAGITA
Kok, di blog aku gak fungsi sih kak, aku memakai komentar dengan script ini :
Tetapi jika memakai script itu berfungsi kak, kira-kira apakah ada yang salah ya ?
IRIL SAGITA
Tidak memakai script itu maksut saya.
IRIL SAGITA
G jadi kak, aku udah nemuin caranya, agak sulit memang, tapi akhirnya ketemu juga caranya, terima kasih ?
Taufik Nurrohman
Setahu Saya area komentar di blogmu sudah tidak standar/sudah dimodifikasi total, jadi eksekusi script harus diset lagi, menyesuaikan dengan markup HTML komentarmu:
IRIL SAGITA
Betul kak, masalahnya cuma salah penempatan areanya, yang tadinya di area comment_body menjadi cm_wrap (keseluruhan area comment).
Anonim
pusin....... :Ozz bisa langsung gak gan satuin semua
Unknown
Bang mau tanya,
Caranya masukkin link yang udah terpasang trik no_live_links ini gimana yah??
Taufik Nurrohman
Tidak bisa. Cuma bisa memakai tautan/link mati saja.
Unknown
kalau membuat seperti ini gimana kang ??
Unknown
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..
budkalon
Coba ganti kode
//>
menjadi seperti ini://]]>
Tapi saya gak yakin bisa sih, silakan aja dicoba :)
Anonim
Pasangnya dimana gan?
budkalon
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 pencerahannyaTaufik Nurrohman
Demo: http://jsfiddle.net/tovic/2WLCU/111/
budkalon
EHHH!!!? Terima kasih!!!! Akan saya kembangkan :D
Kang Ismet
maaf test oot
Anonim
Berhasil Dengan Sukses Mas Taufik ,
Anda Gimana Caranya Menambahkan Tulisan "Text Yang Ditandai Tidak Diperbolehkan Lagi" Setelah Text Komentar ,
Kang Ismet
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?
Taufik Nurrohman
Kang Ismet
tengkyu2... walaupun harus dipelajari lagi :)
Unknown
kalau script yang lengkapnya gimana untuk kata1|kata2|kata3| soalnya saya coba gabung dengan script diatas ga bisa mas...
Kang Ismet
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/
Taufik Nurrohman
Demo: http://jsfiddle.net/tovic/9DYFx/4/
Unknown
kalo mencoret kata terlarang ini diubah menjadi Jqeury gmna contoh scriptnya mas :
Taufik Nurrohman
Begini mas…
Cara pakai:
Taufik Nurrohman
→ http://jsfiddle.net/tovic/2WLCU/129
Bowo Ekowidodo
Sedikit bertanya, script ini untuk sebelum posting atau sesudah terposting komentarnya ?
Kang Ismet
maksudnya bekerja nya ya mas? komentar terlamapun,mkalau mengandung link aktif, akan otomatis berubah ketika dipasangi script ini.
Bowo Ekowidodo
Prinsipnya ini setelah terposting ya? Ya sudah sudah ngerti maksudnya, saya kira bisa blocking sebelum posting komentar :D ..
Anonim
Ok Mas untuk menontaktifkan link hidup didalam komentar.Tentunya cara ini sangat aman melindungi komentar blog dari serangan spammer. :)
Anonim
lawan spammer .
Anonim
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 .... ?
Unknown
saya sudah lihat kodenya, itu kenapa kamu campur adukan? javascript scroll dengan javascript commentblock jangan di jadikan satu jelas aja gak berfungsi -______-
Saeful Rahman
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.
Taufik Nurrohman
budkalon
Maaf kang, saya dari dulu pengen tahu, sebenernya .closest('') itu buat apa sih fungsinya?
Saeful Rahman
Komentar ini telah dihapus oleh pengarang.
Saeful Rahman
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|"|'|"|'|\,|\.|\!|\?|\:|\;|\)|\/|<| |$)/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|"|'|"|'|\,|\.|\!|\?|\:|\;|\)|\/|<| |$)/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|"|'|"|'|\,|\.|\!|\?|\:|\;|\)|\/|<| |$)/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');.
Taufik Nurrohman
Saeful Rahman
Sya juga sudah coba cara ini mas, tapi malah gk berfungsi. Kalau boleh tahu susunan yg benar giman ? :D
Saeful Rahman
Berhasil mas, sya kurang teliti dg tag "}". :D
:-bd
Saeful Rahman
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|"|'|"|'|\,|\.|\!|\?|\:|\;|\)|\/|<| |$)/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;
Ariana
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?
Unknown
mas, gimana ngatasi ini?

Taufik Nurrohman
Biasanya salahnya ada di ID kontainer.
you
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 = /(^| |>|\/|\(|"|'|"|'|\[)(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|"|'|"|'|\,|\.|\!|\?|\:|\;|\)|\/|<| |$)/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..
Taufik Nurrohman
→ /2011/08/membedakan-tampilan-komentar.html
Unknown
kang,di template saya kok gak work jsnya?
mohon bantuanya kang...
Unknown
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
Unknown
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....
Unknown
mas kalo di sebelahnya nama komentator di tambahin tulisan "spam" caranya gimana :D
Unknown
saya coba tambahin seperti ini $(".comment-header").append("<span class='spam'>Spam</span>"); tapi hasilnya muncul semua disetiap komentar mas :D hehehe..
Taufik Nurrohman
Unknown
yeahh.. yang ini berhasil mulus :-bd