Khóa mõm - Chặn bình luận theo ID Blogger
2 min read
Bài này hướng dẫn anh em "khóa mõm" của một số tài khoản nhất định dựa theo Profile ID Blogger.
Tự động thay avatar thành biểu tượng cấm, đổi tên thành Blocked User, thay nội dung và làm mờ khung bình luận.
Tự động thay avatar thành biểu tượng cấm, đổi tên thành Blocked User, thay nội dung và làm mờ khung bình luận.
Code
<!-- khóa mõm -->
<script>
document.addEventListener("DOMContentLoaded", function () {
const blockedUsers = [
"07681083261644181883",
"01234567891011121314",
"01234567891011121314"
];
function getProfileIdFromLink(href) {
const m = href && href.match(/\/profile\/(\d+)/);
return m ? m[1] : null;
}
function blockOneComment(block) {
if (!block) return;
const userLink = block.querySelector(".comment-header .user a[href*='blogger.com/profile/']");
if (!userLink) return;
const uid = getProfileIdFromLink(userLink.href);
if (!uid || !blockedUsers.includes(uid)) return;
const comment = block.closest(".comment");
const avatarBox = comment?.querySelector(".avatar-image-container");
if (avatarBox) {
avatarBox.innerHTML = `
<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"
width="45" height="45" fill="#d32f2f" title="Người dùng bị chặn">
<circle cx="256" cy="256" r="200" fill="none" stroke="#d32f2f" stroke-width="40"/>
<line x1="120" y1="392" x2="392" y2="120" stroke="#d32f2f" stroke-width="40"/>
</svg>
`;
}
userLink.textContent = "Blocked User";
userLink.removeAttribute("href");
userLink.removeAttribute("target");
userLink.removeAttribute("rel");
userLink.style.pointerEvents = "none";
const content = block.querySelector(".comment-content");
if (content) {
content.textContent = "Nội dung cho người dùng bị cấm đăng lên vì vậy không hiển thị";
}
block.style.opacity = "0.7";
block.style.pointerEvents = "none";
}
document.querySelectorAll(".comment-block").forEach(blockOneComment);
const holder = document.querySelector("#comment-holder") || document.body;
const mo = new MutationObserver(() => {
document.querySelectorAll(".comment-block").forEach(blockOneComment);
});
mo.observe(holder, { childList: true, subtree: true });
});
</script>
<!-- khóa mõm -->
Lưu ý
Cách lấy Profile ID
- Mở trang bình luận nơi người đó đã comment.
- Nhấp vào tên người dùng (liên kết thường có dạng
https://www.blogger.com/profile/xxxxxxxxxxxxxxxxxxx). - Sao chép dãy số sau
/profile/và thêm vào mảngblockedUserstrong script.
Nếu vẫn thấy bình luận của người bị chặn?
- ID đã đúng (khớp dãy số trong URL profile).
- Template có đúng selector:
.comment-block,.avatar-image-container,.comment-header .user a,.comment-content. Nếu khác, hãy đổi selector tương ứng.
Tùy chọn hiển thị
- Ẩn hoàn toàn bình luận: thay hai dòng cuối trong hàm
blockOneCommentbằng:
block.closest(".comment")?.remove(); - Đổi biểu tượng: thay đoạn SVG trong
avatarBox.innerHTMLbằng SVG khác tùy ý. - Đổi thông điệp: sửa chuỗi “Nội dung cho người dùng bị cấm…” theo ý bạn.
Kết luận
- Nên khóa hết mõm mấy thằng hay spam cho đỡ rác
- Để lại bình luận nếu bạn cần hỗ trợ


Tùy spammer vẫn có thể tiếp tục "làm phiền" quản trị viên. Đây là thử "độ lì"... 🙄
Logo sự kiện kèm theo đếm ngược thì hay, khi sự kiện kết thúc có thể ẩn đi (chỉnh sửa hoặc gỡ bỏ code sau).
Một tháng gần đây quản trị viên blog này siêng đăng bài mới trở lại quá với khá nhiều nhận xét rôm rả. 😀
Rêu phong mấy lần rồi bạn
Bao giờ thì sẽ hết cạn ý tưởng? 🤔
Chơi blog cũng "vất vả" như là "chơi" (với) nàng..., phải có thời gian, sức khỏe, tiền bạc, đam mê, chăm chút, chiều chuộng, dại khờ, lúc nào cũng tơ tưởng v.v... tựa như lời bài hát Rong Rêu: "... Chỉ vì yêu em nên anh vất vả... Chỉ vì yêu em nên anh mất cả..." 😄
https://www.youtube.com/watch?v=MuNmUDzJRQg
Theo vòng tuần hoàn thời gian, mùa thu lá vàng rơi, mây bay lãng mạn, lòng người đượm buồn... lại đến. Thu về nắng ngọt như mật ong và gió lao xao đến nao lòng theo từng chiếc lá rơi. Thu về, gieo những vần thơ, khúc nhạc mênh mang, bâng khuâng. Chút se lạnh của hơi thu cũng làm nên thi vị và rồi một màu áo vàng khoác lên cây cành, sắc vàng không bút mực nào tả nổi những ý tưởng của lòng người khi lá đổ ngập lối đi. Không có chú nai vàng ngơ ngác mà đâu đó có những bước chân ngập ngừng trên lá thu của người viễn xứ... 😦
🍂 Thu lại về, tình bơ vơ
💃 Người xưa giờ là giấc mơ xa xăm
💘 Đã cùng hẹn ước trăm năm
🕺 Mà sao nỡ đành biệt tăm mù khơi...!!! 💔
https://www.youtube.com/watch?v=8lzXAu_O6iI
💻 Ⓓuong Ⓠuach℠ ❤️[/note]
https://anotepad.com/notes/rqq6b7ga
và code bạn share ở bài này nè: https://www.blogspotvi.net/2025/09/tao-trang-nhan-xet-cho-blogspot-day-du-nhat.html
[pre]<script type="text/javascript">
//<![CDATA[
var NXM_BLOCKED = window.NXM_BLOCKED || [
"07681083261644181883",
"05815588754456032856",
"12718544154576947159"
];
function getAuthor(entry){
return entry && entry.author && entry.author[0] ? entry.author[0] : null;
}
function getProfileIdFromAuthor(au){
var uri = au && au.uri && au.uri.$t;
var m = uri && uri.match(/\/profile\/(\d+)/);
return m ? m[1] : null;
}
function isBlockedEntry(entry){
var au = getAuthor(entry);
var pid = getProfileIdFromAuthor(au);
return !!(pid && NXM_BLOCKED.indexOf(pid) !== -1);
}
function nxmoi(e){
var t = '<ul>';
for (var n = 0; n < numComments; n++) {
if (!e.feed || !e.feed.entry || n === e.feed.entry.length) break;
var entry = e.feed.entry[n];
if (isBlockedEntry(entry)) continue;
var r, i, s, o, l, c;
for (var a = 0; a < entry.link.length; a++) {
if (entry.link[a].rel === "alternate") { r = entry.link[a].href; }
}
var au = getAuthor(entry);
if (au) {
i = au.name && au.name.$t || "Ẩn danh";
s = au.gd$image && au.gd$image.src || "";
} else {
i = "Ẩn danh"; s = "";
}
if (s.indexOf("/s1600/") != -1) {
s = s.replace("/s1600/","/s"+avatarSize+"-c/");
} else if (s.indexOf("/s220/") != -1) {
s = s.replace("/s220/","/s"+avatarSize+"-c/");
} else if (s.indexOf("/s512-c/") != -1 && s.indexOf("https:") != 0) {
s = "https:" + s.replace("/s512-c/","/s"+avatarSize+"-c/");
} else if (s.indexOf("blogblog.com/img/b16-rounded.gif") != -1) {
s = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivOn1zPrLdfzH9RxbZ0LibKAofuhuIgKzyq4IBWs7ZhLWelcGraOwPf0p8vyrW5yJXiLv-PJF52FINycEeYcX73huuOsLhk7gWFevNHFTMPOheQ0wc8d9vrdW3JoUFPG3CYx6oQx4CuUDl/"+avatarSize+"/md_blogger_logo.png";
} else if (s.indexOf("blogblog.com/img/openid16-rounded.gif") != -1) {
s = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVipyG4x6YeRP3cdfePLqW326iB5jlCRCyJ1Mw0tMRmlwee9bs_7HBoZvZQD4DYQ5-Zq1MsuOl9MjV9uPBwFt9-jy-AEkaBP55PshWYl9ToJM6RFYyrnqbw0ob8vaJ9al5FEUL31BtEPd_/"+avatarSize+"/md_openid_logo.png";
} else if (s.indexOf("blogblog.com/img/blank.gif") != -1) {
if (defaultAvatar.indexOf("gravatar.com") != -1) {
s = defaultAvatar + "&s=" + avatarSize;
} else {
s = defaultAvatar;
}
}
var r2 = (r || "").replace(/<.*?>/ig,'');
l = entry.content && entry.content.$t || "";
c = l.replace(/(<([^>]+)>)/ig,"");
if (c !== "" && c.length > characters) {
c = c.substring(0, characters) + "…";
}
t += "<li>";
if (showAvatar === true) {
o = (roundAvatar === true) ? "avatarRound" : "";
t += '<div class="trai avatarImage"><img class="'+o+'" src="'+s+'" alt="'+i+'" height="'+avatarSize+'" width="'+avatarSize+'" /></div>';
}
t += "<div class='trai noi-dung'><span class='name'>"+i+"</span>";
[pre]<script type="text/javascript" src="/feeds/comments/default?alt=json&callback=nxmoi&max-results=50"></script>[/pre]
Và sửa js như sau
[pre]<script type="text/javascript">
var NXM_BLOCKED=window.NXM_BLOCKED||["07681083261644181883","05815588754456032856","12718544154576947159"];
function getAuthor(e){return e&&e.author&&e.author[0]?e.author[0]:null}
function getProfileIdFromAuthor(e){var n=e&&e.uri&&e.uri.$t,r=n&&n.match(/\/profile\/(\d+)/);return r?r[1]:null}
function isBlockedEntry(e){var n=getAuthor(e),r=getProfileIdFromAuthor(n);return!!(r&&NXM_BLOCKED.indexOf(r)!==-1)}
function nxmoi(e){
var o=["<ul>"],shown=0,entries=e&&e.feed&&e.feed.entry?e.feed.entry:[];
for(var n=0;n<entries.length;n++){
if(shown>=numComments)break;
var u=entries[n]; if(isBlockedEntry(u))continue;
var r,i,s,a,l,c;
for(var k=0;k<u.link.length;k++){if(u.link[k].rel==="alternate"){r=u.link[k].href}}
var au=getAuthor(u);
i=au&&au.name&&au.name.$t||"Ẩn danh";
s=au&&au.gd$image&&au.gd$image.src||"";
if(s.indexOf("/s1600/")!=-1){s=s.replace("/s1600/","/s"+avatarSize+"-c/")}
else if(s.indexOf("/s220/")!=-1){s=s.replace("/s220/","/s"+avatarSize+"-c/")}
else if(s.indexOf("/s512-c/")!=-1&&s.indexOf("https:")!=0){s="https:"+s.replace("/s512-c/","/s"+avatarSize+"-c/")}
else if(s.indexOf("blogblog.com/img/b16-rounded.gif")!=-1){s="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivOn1zPrLdfzH9RxbZ0LibKAofuhuIgKzyq4IBWs7ZhLWelcGraOwPf0p8vyrW5yJXiLv-PJF52FINycEeYcX73huuOsLhk7gWFevNHFTMPOheQ0wc8d9vrdW3JoUFPG3CYx6oQx4CuUDl/"+avatarSize+"/md_blogger_logo.png"}
else if(s.indexOf("blogblog.com/img/openid16-rounded.gif")!=-1){s="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVipyG4x6YeRP3cdfePLqW326iB5jlCRCyJ1Mw0tMRmlwee9bs_7HBoZvZQD4DYQ5-Zq1MsuOl9MjV9uPBwFt9-jy-AEkaBP55PshWYl9ToJM6RFYyrnqbw0ob8vaJ9al5FEUL31BtEPd_/"+avatarSize+"/md_openid_logo.png"}
else if(s.indexOf("blogblog.com/img/blank.gif")!=-1){s=(defaultAvatar.indexOf("gravatar.com")!=-1)?(defaultAvatar+"&s="+avatarSize):defaultAvatar}
var r2=(r||"").replace(/<.*?>/ig,"");
l=u.content&&u.content.$t||"";
c=l.replace(/(<([^>]+)>)/ig,"");
if(c!==""&&c.length>characters){c=c.substring(0,characters)+"…"}
o.push("<li>");
if(showAvatar===true){a=(roundAvatar===true)?"avatarRound":"";o.push('<div class="trai avatarImage"><img class="'+a+'" src="'+s+'" alt="'+i+'" height="'+avatarSize+'" width="'+avatarSize+'"/></div>')}
o.push("<div class='trai noi-dung'><span class='name'>"+i+"</span>");
o.push('<a class="nxmoia" rel="nofollow" href="'+r2+'">'+c+"</a></div>");
o.push("<div style='clear: both'></div></li>");
shown++;
}
o.push("</ul>");
document.getElementById("nxmoi").innerHTML=o.join("");
}
var numComments=numComments||7,
avatarSize=avatarSize||30,
characters=characters||90,
defaultAvatar=defaultAvatar||&