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
Labels: Blogger, JavaScript, Masalah, Potongan, Regex
100 Comments:
pernah mbaca ini dikomentarnya 7bloggers :D
tak cobane sik mas.
oo ini yahh cara peletakkan kodenyaa...
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
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..
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/
ini yang saya cari,
makasih sharenya,
mohon ijin copas gan
cara makenya gimana mas ? :(
mas, koq di blog saya ga bisa ya, "kodenya saya tarok diatas "body" seperti komentar mas taufik diatas??
Di atas </body>, bukan di atas <body>
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 ??
Pakai JQuery lebih gampang:
$(function() {
$('#comment-holder').find('a').contents().unwrap();
});
Demo: http://jsfiddle.net/tovic/2WLCU/12/
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 ...
Punyamu nggak pake #comment-holder, tapi .cm_wrap:
$(function() {
$('.cm_wrap p').find('a').contents().unwrap();
});
Gk work Juga... :(, jadi bagaimana ??
Jadi rame! HOREEEE!!!! \o/ \o/ \o/
:( ??? :(
Wah ni dia yang saya cari. blogku kebanjiran spam nih.
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...
akhirnya nemu juga obatnya untuk spam...
thanks sob... salam kenal.
contohnya seperti ini
bang, gimana caranya kalo ada yang berkomentar dengan link hidup secara otomatis terhapus dan ada salinan komentarnya seperti contoh link komentar yang di atas
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/
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
kaga jadi ngajak stresnya bang, udah ketemu letak kesalahannya. ternyata CSSnya kaga ke ajak :D jadi malu nih 0:)
Sukses cuY !! \o/
Keren" tutornya.
sy msh newbie mas,script di atas penempatannya di mana yah? mohon pencerahannya. mksh
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.
Tidak bisa dari situ. Harus dari dalam template secara langsung.
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 :) .
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';
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 + "_comment-editor-toggle-link"' 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('<data:post.appRpcRelayPath/>', '<data:post.communityId/>');
</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 + "_comment-editor-toggle-link"' 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('<data:post.appRpcRelayPath/>', '<data:post.communityId/>');
</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
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 ?
Tidak memakai script itu maksut saya.
G jadi kak, aku udah nemuin caranya, agak sulit memang, tapi akhirnya ketemu juga caranya, terima kasih ?
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');
Betul kak, masalahnya cuma salah penempatan areanya, yang tadinya di area comment_body menjadi cm_wrap (keseluruhan area comment).
pusin....... :Ozz bisa langsung gak gan satuin semua
Bang mau tanya,
Caranya masukkin link yang udah terpasang trik no_live_links ini gimana yah??
Tidak bisa. Cuma bisa memakai tautan/link mati saja.
kalau membuat seperti ini gimana kang ??
http://2.bp.blogspot.com/-bw-wT_R7yZM/UVVUwKGZYWI/AAAAAAAAAR0/URlPZXnGomw/s1600/Screenshot_1.jpg
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..
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 :)
Ah, mau ngelanjutin tentang tombol di atas formulir komentar, apakah itu memakai Javascript atau kode HTML? :D
Coba ganti kode //> menjadi seperti ini: //]]>
Tapi saya gak yakin bisa sih, silakan aja dicoba :)
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
Pasangnya dimana gan?
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
content[i].innerHTML =
content[i].innerHTML.replace(/( |>)oot(<| )/ig, "$1<mark>OOT</mark>$2");
Demo: http://jsfiddle.net/tovic/2WLCU/111/
EHHH!!!? Terima kasih!!!! Akan saya kembangkan :D
Sedikit bertanya, script ini untuk sebelum posting atau sesudah terposting komentarnya ?
Bantu jawab ah... pake HTML sob, cari di om guugel ada caranya ko.. coba aja keywordnya : Membuat Tombol pada Pesan Formulir Komentar
maaf test oot
Berhasil Dengan Sukses Mas Taufik ,
Anda Gimana Caranya Menambahkan Tulisan "Text Yang Ditandai Tidak Diperbolehkan Lagi" Setelah Text Komentar ,
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?
maksudnya bekerja nya ya mas? komentar terlamapun,mkalau mengandung link aktif, akan otomatis berubah ketika dipasangi script ini.
content[i].innerHTML =
content[i].innerHTML
.replace(/(^| |>)(kata1|kata2|kata3)(<| |$)/ig, "$1<mark>$2</mark>$3");
tengkyu2... walaupun harus dipelajari lagi :)
Ok Mas untuk menontaktifkan link hidup didalam komentar.Tentunya cara ini sangat aman melindungi komentar blog dari serangan spammer. :)
kalau script yang lengkapnya gimana untuk kata1|kata2|kata3| soalnya saya coba gabung dengan script diatas ga bisa mas...
Prinsipnya ini setelah terposting ya? Ya sudah sudah ngerti maksudnya, saya kira bisa blocking sebelum posting komentar :D ..
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/
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/
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/
Sama saja. Pakai regex .test()
if (/(^| |>)(shap|ship|shup|shep|shop)(<| |$)/i.test(content[i].innerHTML)) { ... }
makasih masbro.. it's work like a charm :)
lawan spammer .
harus pasang JQuery dulu? punya saya belum pake jquery
kang, tomol konversi kodenya kok ikut kena mark ya??
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 .... ?
saya sudah lihat kodenya, itu kenapa kamu campur adukan? javascript scroll dengan javascript commentblock jangan di jadikan satu jelas aja gak berfungsi -______-
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.
$(".comment_body p").each(function() {
if ($(this).find("a:not(.allow)").length) {
$(this).html('No spam!');
}
});
Maaf kang, saya dari dulu pengen tahu, sebenernya .closest('') itu buat apa sih fungsinya?
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');.
This comment has been removed by the author.
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|"|'|"|'|\,|\.|\!|\?|\:|\;|\)|\/|<| |$)/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|"|'|"|'|\,|\.|\!|\?|\:|\;|\)|\/|<| |$)/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');
Sya juga sudah coba cara ini mas, tapi malah gk berfungsi. Kalau boleh tahu susunan yg benar giman ? :D
Berhasil mas, sya kurang teliti dg tag "}". :D
:-bd
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;
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;
}
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?
mas, gimana ngatasi ini?
[img]http://3.bp.blogspot.com/-eh7Ojkb2cOY/UrHv_639N-I/AAAAAAAABgI/H6OPRH0WNTg/s1600/Capture3.PN[/img]
Biasanya salahnya ada di ID kontainer.
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..
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;
}
}
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();
});
→ http://jsfiddle.net/tovic/2WLCU/129
<b:if cond='data:comment.author == data:post.author'>
→ /2011/08/membedakan-tampilan-komentar.html
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');
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
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....
mas kalo di sebelahnya nama komentator di tambahin tulisan "spam" caranya gimana :D
saya coba tambahin seperti ini $(".comment-header").append("<span class='spam'>Spam</span>"); tapi hasilnya muncul semua disetiap komentar mas :D hehehe..
$('.spammer-detected').closest('li').find('.comment-header').append('<span class="spam">Spam</span>');
yeahh.. yang ini berhasil mulus :-bd
Versi javascript murni >> [url=http://jsfiddle.net/sekedus/vnpk1L7c/]jsfiddle[/url]
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');
}
}
}
klo menggunakan regex saya ambil dari sini >>
[url=https://stackoverflow.com/a/20867743/7598333]stackoverflow[/url]
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]
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