资讯专栏INFORMATION COLUMN

简单几行代码,写一个百度广告屏蔽插件,爽到爆

JeOam / 3339人阅读

摘要:使用方法,新增脚本,粘贴代码代码如下已过滤条垃圾广告,本次过滤条然后每次打开浏览器百度搜索,就不会再有提示了效果

下载地址:https://github.com/jsoncode/b...
使用方法:

将文件夹拖到这里面

一个小问题:
我没有境外支付信用卡>无法向谷歌支付$5的费用>每次打开浏览器都会提示是否禁止>点取消就行了

</>复制代码

  1. 也可以通过网上的方法,修改注册表关闭提示,这里就不再赘述
    如果你有更新,需要打开第二张图的位置,重新载入才能生效

目录结构

</>复制代码

  1. -bd.png
    -browser_action.js
    -config.js
    -manifest.json

manifest.json

</>复制代码

  1. {
  2. "name": "屏蔽百度广告",
  3. "manifest_version": 2,
  4. "version": "1.0",
  5. "description": "百度插件",
  6. "browser_action": {
  7. "default_icon": "bd.png"
  8. },
  9. "icons": {
  10. "128":"bd.png"
  11. },
  12. "content_scripts": [{
  13. "matches": [""],
  14. "js": ["config.js","browser_action.js"]
  15. }]
  16. }
browser_action.js

</>复制代码

  1. var lists = str.split("
  2. ").filter(function(v) {
  3. if (v) return true
  4. });
  5. function clear(lists) {
  6. var local = location.href;
  7. for (var a = 0, list; list = lists[a++];) {
  8. var sub = list.split("$");
  9. if (new RegExp(sub[0]).test(local)) {
  10. var selector = sub[1];
  11. var obj = document.querySelectorAll(selector);
  12. for (var i = 0, item; item = obj[i++];) {
  13. item.parentNode.removeChild(item);
  14. }
  15. }
  16. }
  17. }
  18. clear(lists);
  19. setInterval(function() {
  20. clear(lists);
  21. }, 2000);
  22. var input = document.querySelector("input[name=wd]");
  23. input&&input.addEventListener("change", function() {
  24. clear(lists);
  25. });

之所以用定时器一直调用,是因为有些网站会动态延迟的加载动态脚本类的广告,比如bd,恶心无比,自己使用的adBlock,adBlock plus都不理想。

config.js

</>复制代码

  1. var str = `
  2. www.baidu.com$#content_left [style="display:block !important;visibility:visible !important"]
  3. www.baidu.com$[tpl="right_toplist"]
  4. www.baidu.com$[class="c-gray c-feedback"]
  5. www.baidu.com$[data-click*="vLevel"]
  6. `;

用法:每次只需要修改config.js中的规则就行
规则约定:需要屏蔽的网站地址$css3选择器,中间的$是分隔符,选择器选中的就是要被删除的广告

上面四个规则自己常用的,
第一个可以屏蔽大多数动态流氓广告,之所以用这么低级的方法(style=*)是因为这类广告伪装实在太逼真(和正常搜索结果没任何区别)
第二个屏蔽右侧不喜欢的推荐
第三行忘记了,
第四行是一些推广广告

从此,世界一片洁净,我不会成为第二个魏则西,在此分享给大家,

这里更新一下,每次打开浏览器,都会提示的问题。

我找到了一个管理浏览器插件代码片段的工具Tampermonkey,是一个浏览器插件。
然后就可以把我的百度插件代码添加到这个插件中使用,就不会每次都提示了。

使用方法:
1,新增脚本

2,粘贴代码

代码如下:

</>复制代码

  1. // ==UserScript==
  2. // @name ad-baidu
  3. // @namespace https://baidu.com/
  4. // @version 0.1
  5. // @description try to take over the world!
  6. // @author You
  7. // @match https://www.baidu.com/**
  8. // @grant none
  9. // ==/UserScript==
  10. var selectors = `
  11. #content_left [style*="display:block !important;visibility:visible !important"]
  12. [tpl="right_toplist"]
  13. [class="c-gray c-feedback"]
  14. [data-click*="vLevel"]
  15. `;
  16. selectors = selectors.trim().split("
  17. ");
  18. var count = 0;
  19. function showCount(cn){
  20. if(cn>0){
  21. count+=cn;
  22. var content_right = document.querySelector("#content_right");
  23. if(content_right){
  24. content_right.style.position = "relative";
  25. var style = `
  26. line-height: 42px;
  27. text-align: center;
  28. background: #0c0;
  29. color: #fff;
  30. margin-bottom:30px;
  31. `;
  32. var msgCount = document.querySelector("#msg-remove");
  33. if(!msgCount){
  34. content_right.insertAdjacentHTML("afterbegin","
    ");
  35. msgCount = document.querySelector("#msg-remove");
  36. }
  37. msgCount.innerHTML = "已过滤:"+count+"条垃圾广告,本次过滤:"+cn+"条";
  38. }
  39. }
  40. }
  41. function clear() {
  42. selectors.forEach(function(selector) {
  43. var doms = document.querySelectorAll(selector);
  44. if(doms.length){
  45. doms = Array.from(doms);
  46. showCount(doms.length);
  47. doms.forEach(function(dom) {
  48. dom.parentNode.removeChild(dom);
  49. });
  50. }
  51. });
  52. }
  53. setInterval(function () {
  54. clear();
  55. },500);

然后每次打开浏览器百度搜索,就不会再有提示了;
效果:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79671.html

相关文章

  • 我的页面我做主——浏览器去广告正确姿势

    摘要:简单高效的自定义方式对于这些情况我们可以使用一个强大的浏览器插件,简称,中文俗称为油猴,支持和浏览器。简单几行代码,就可以去除大部分页面广告。声明需要使用的函数。 会CSS就会去广告~ 传统去广告方法的弊端 我们浏览网页的时候经常不免会看到各种不想看到的广告内容,最简单的方案就是通过浏览器插件来解决,比如大名鼎鼎的AdBlock插件以及国内的各种广告拦截助手。 但这些插件的拦截能力可...

    iamyoung001 评论0 收藏0
  • 我的页面我做主——浏览器去广告正确姿势

    摘要:简单高效的自定义方式对于这些情况我们可以使用一个强大的浏览器插件,简称,中文俗称为油猴,支持和浏览器。简单几行代码,就可以去除大部分页面广告。声明需要使用的函数。 会CSS就会去广告~ 传统去广告方法的弊端 我们浏览网页的时候经常不免会看到各种不想看到的广告内容,最简单的方案就是通过浏览器插件来解决,比如大名鼎鼎的AdBlock插件以及国内的各种广告拦截助手。 但这些插件的拦截能力可...

    20171112 评论0 收藏0
  • 基于 Tampermonkey插件百度广告屏蔽脚本

    摘要:由于一些广告是动态加载,也无能为力,所以,自己写了一个脚本来过滤这些动态广告。使用前使用后已过滤条垃圾广告,本次过滤条脚本 由于一些广告是动态加载,adplus也无能为力,所以,自己写了一个脚本来过滤这些动态广告。 使用前: showImg(https://segmentfault.com/img/bVNOsw?w=1204&h=868); 使用后: showImg(https://s...

    jiekechoo 评论0 收藏0
  • vue-cli + webpack 多页面实例配置优化方法

    摘要:在谷歌找多页面,实例还是比较少,功夫不负有心人,在那找到了,具体可以到这个,非常感谢童鞋,今天要讲的内容是基于童鞋的多页面实例上再优化的。有需要一起交流的可以加我的微信,,记得备注技术交流哈。 vue+webpack是否有多页面 目前使用vue来做项目,估计大部分都是单页面(SPA)应用,一个轻型的 MVVM 框架,谁用了MVVM框架,就再也回不去JQ时代了,哈哈。 在手机端的项目,使...

    Taste 评论0 收藏0
  • 玩转 React(二)- 新型前端开发方式

    摘要:这也就是所谓的单向数据流,在这种开发方式下,会让你更新视图的逻辑非常清晰简单,哪怕你的前端交互很复杂,也不至于让你的代码那么容易变成一坨。就是在前端开发过程中,要善于观察和抽象。 这是《玩转 React》系列的第二篇。在该篇中,我们来了解下,React 的出现到底给我们的开发方式带来了什么样的变化。 我的感触可以用一个字来形容,爽!主要爽在以下两个方面。 视图是数据的映射(单向数据流)...

    RdouTyping 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<