首页 > 代码库 > chrome 扩展屏蔽百度贴吧某些人的发言
chrome 扩展屏蔽百度贴吧某些人的发言
chrome 扩展屏蔽百度贴吧某些人的发言
我比较喜欢看电影,所以会经常去百度电影票房吧看帖子,但是有些人不知道出于什么目的,在每个帖子中都会发布同样的内容,严重干扰正常的看帖,如果下面这位:
每个帖子都能看到它,心里很不爽,发条呼吁版主封账号,没有用。
刚好最近看了一点javascript的东西,突然就想做个扩展,屏蔽这种帖子,眼不见为净。
主要工作原理如下:
1、用户在设置界面输入想屏蔽的用户ID,通过后台JS脚本存储到本地;
2、当打开贴吧的帖子时,通过 这句获得用户帖子内容:var lstdiv = document.getElementsByClassName("l_post l_post_bright ");,如果用户ID刚好在被屏蔽的人中,那么把此DIV innerhtml设置为空;
想上传到扩展商店呢,结果发现要5刀。
屏蔽前
屏蔽后
manifest.json
{ "manifest_version": 2, "name": "贴吧增强", "version": "1.0", "description": "过滤贴吧某些用户", "browser_action": { "default_icon": { "19": "images/tieba_offline.png" }, "default_title": "贴吧增强", "default_popup": "popup.html" }, "background": { "page": "background.html" }, "permissions": [ "tabs", "http://www.baidu.com/*", "http://tieba.baidu.com/*", "http://tb2.bdstatic.com/*", "http://static.tieba.baidu.com/*" ], "options_page": "options.html", "content_scripts": [ { "matches": ["http://tieba.baidu.com/p/*"], "js": ["content.js"] } ]}
options.html
<html><head> <title>贴吧增强设置</title></head><body> <div> <hr/> <table id="userTable" width="300" frame="box" rules="all"> <caption>过滤用户</caption> <tr> <th>用户名</th><th>操作</th><th>删除</th> </tr> </table> <hr/> </div> <label>用户名</label> <input type="text" id="name" /> <label>操作</label> <select id="operaSelect"> <option value="http://www.mamicode.com/屏蔽" selected="true">屏蔽</option> <option value="http://www.mamicode.com/增强">增强</option> </select> <br/> <input type="button" id="onAddUser" value="http://www.mamicode.com/增加用户"></input> <hr> <label id="saveinfo"></label> <script src="http://www.mamicode.com/options.js"></script> </body></html>
options.js
//初始化设置function initSetting(){ var butAdd = document.getElementById("onAddUser"); butAdd.onclick = onAddUser; LoadUserName();}//获取超链接代码字符串function getLinkStr(sid,sContent){ var str="<a href=http://www.mamicode.com/"javascript:void(0)\" id=\"" +sid + "\">"+sContent+"</a>"; return str;}//onDelete的代理函数function onDeleteAgent(name){ this.onDeleteFunc = function() { onDelete(name); }}//添加一行信息到表格最后function insertTable(name,operation,bInitAdd){ var table=document.getElementById("userTable"); var ret = 2; if(bInitAdd == undefined || false == bInitAdd) { ret = AddNewUser(name,operation); } if (1 == ret) { for(var i = 1; i < table.rows.length;++i) { var cell1 = table.rows[i].cells[0]; if(cell1.innerHTML == name) { var cell2 = table.rows[i].cells[1]; cell2.innerHTML = operation; break; } } } else if (2 == ret) { var row = table.insertRow(table.rows.length); var cell1 = row.insertCell(0); var cell2 = row.insertCell(1); var cell3 = row.insertCell(2); cell1.innerHTML = name; cell2.innerHTML = operation; cell3.innerHTML = getLinkStr("user_"+name,"删除"); var agentFunc = new onDeleteAgent(name); var item = document.getElementById("user_"+name); item.onclick = agentFunc.onDeleteFunc; }}//处理用户点击提交按钮函数function onAddUser(){ var name = document.getElementById("name").value; var oper = document.getElementById("operaSelect").value; if(name == "") { return; } insertTable(name,oper); document.getElementById("name").valuehttp://www.mamicode.com/= ""; document.getElementById("name").focus();}//判断新增用户是否已经存在,如果存在,那么就返回false,否则增加到容器中function AddNewUser(name,operation){ for(var i=0;i<gLstUser.length;++i) { var item = gLstUser[i]; if(item["name"] == name) { if(item["opera"] == operation) { return 0;//重复 } else { item["opera"] = operation; SaveUserName(); return 1;//修改 } } } var newItem = {}; newItem["name"]=name; newItem["opera"]=operation; gLstUser.push(newItem); SaveUserName(); return 2;}//根据用户名删除条目function onDelete(name){ for(var i=0;i<gLstUser.length;++i) { var item = gLstUser[i]; if(item["name"] == name) { gLstUser.splice(i,1); break; } } var table=document.getElementById("userTable"); for(var i = 1; i < table.rows.length;++i) { var cell1 = table.rows[i].cells[0]; if (cell1.innerHTML == name) { table.deleteRow(i); break; } } SaveUserName();}function SaveUserName(){ var str = JSON.stringify(gLstUser); var showInfo = document.getElementById("saveinfo"); showInfo.innerText = str; localStorage.setItem("baiduTieBa",str);}function LoadUserName(){ var showInfo = document.getElementById("saveinfo"); var str = localStorage.getItem("baiduTieBa"); if(str == null || str == undefined) { showInfo.innerText = "无存储数据"; return; } showInfo.innerText = str; gLstUser = JSON.parse(str); for(var i = 0; i< gLstUser.length; ++i) { var item = gLstUser[i]; insertTable(item["name"],item["opera"],true); }}//全局代码var gLstUser = new Array();initSetting();
popup.html
<html><body><h1>hello</h1><h2>屏蔽信息</h2><div id="lajiinfo"></div><script src="popup.js"></script></body></html>
popup.js
function init(){ var ele = document.getElementById("lajiinfo"); //ele.innerHTML+="<label>wsm</label>"; chrome.tabs.getSelected(null,function(tab) { ele.innerHTML+="<label>"+tab.url+"</label><br/>"; var str = localStorage.getItem(tab.url); //ele.innerHTML+="<label>"+str+"</label><br/>"; var lstinfo=JSON.parse(str); for(var i=0;i<lstinfo.length;++i) { var item = lstinfo[i]; var name=item["name"]; ele.innerHTML+="<hr><label>"+name+"</label><br/>"; var lstinf = item["msgInfo"]; for(var j=0;j<lstinf.length;++j) { var msg=lstinf[j]; ele.innerHTML+="<div>"+msg+"</div><br/>"; } } })}init();
bkg.js
1 function GetLocalStorage(skey) 2 { 3 return localStorage.getItem(skey); 4 } 5 6 chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) 7 { 8 if(message["type"] == "getLocalStorage")//获取用户信息 9 {10 sendResponse(GetLocalStorage(message["key"]));11 }12 else if(message["type"]=="userDealInfo")//设置当前页面过滤的条目数13 {14 var userDealInfo = message["key"];15 setIconAndBlade(userDealInfo);16 }17 })18 19 //根据信息显示icon和数字20 function setIconAndBlade(userDealInfo)21 {22 var iCount1=0;//屏蔽23 var iCount2=0;//增强24 for(var i=0;i<userDealInfo.length;++i)25 {26 var item = userDealInfo[i];27 if(item["opera"]=="屏蔽")28 {29 iCount1 += item["count"];30 }31 else if (item["opera"]=="增强")32 {33 iCount2 += item["count"];34 }35 }36 //alert(iCount1.toString());37 38 39 chrome.browserAction.setBadgeText({text:iCount1.toString()});40 41 42 chrome.tabs.getSelected(null,function(tab){43 var str = JSON.stringify(userDealInfo);44 localStorage.setItem(tab.url, str);45 });46 }47 48 chrome.tabs.onActivated.addListener(function(activeInfo) {49 var iTabId = activeInfo["tabId"];50 //根据当前标签页面情况设置图标和数字51 chrome.tabs.getSelected(null,function(tab){52 try53 {54 if(tab.url.toString().indexOf("tieba.baidu.com/p") >= 0)55 {56 var str = localStorage.getItem(tab.url);57 if(str != null && str != undefined)58 {59 setIconAndBlade(JSON.parse(str));60 }61 else62 {63 chrome.browserAction.setBadgeText({text:"0"});64 }65 chrome.browserAction.setIcon({ path:"images/tieba_online.png"});66 }67 else68 {69 chrome.browserAction.setIcon({ path:"images/tieba_offline.png"});70 chrome.browserAction.setBadgeText({text:""});71 }72 }73 74 catch (e)75 {76 alert(e.message);77 }78 })79 })
chrome 扩展屏蔽百度贴吧某些人的发言
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。