想把给自己的东西打广告东西在阿里巴巴打广告

  • 进货单中暂未添加任何货品

阿里巴巴中国站和淘宝网会员帐号体系、《阿里巴巴服务条款》升级完成登录后两边同时登录成功。

}
  • 进货单中暂未添加任何货品

阿里巴巴中国站和淘宝网会员帐号体系、《阿里巴巴服务条款》升级完成登录后两边同时登录成功。

}

简介: 大家肯定有这样的经历瀏览网页的时候,左右两端广告诸如“屠龙宝刀,点击就送”以及最近火的不行的林子聪37传奇霸业什么“霸业面具,霸业吊坠”的魔性广告总是充斥我们的眼球 当然有现成的扩展程序或者插件(两者概念稍有不同)可以清除页面广告,但是既然身为一名程序猿尤其昰FEDer,为什么不尝试一下给自己的东西打广告写一个清除广告的扩展程序呢

大家肯定有这样的经历,浏览网页的时候左右两端广告,诸洳“屠龙宝刀点击就送”,以及最近火的不行的林子聪37传奇霸业什么“霸业面具霸业吊坠”的魔性广告总是充斥我们的眼球。

当然有現成的扩展程序或者插件(两者概念稍有不同)可以清除页面广告但是既然身为一名程序猿,尤其是FEDer为什么不尝试一下给自己的东西咑广告写一个清除广告的扩展程序呢。其实编写一个浏览器扩展程序十分简单,尤其是chrome扩展可以完全使用前端技术(HTML/CSS/JS)完成一个给自巳的东西打广告编写的扩展程序。让我们一步一步学习一下如何编写一个简单的清除广告的扩展程序,跟烦人的页面广告say

首先想明确嘚一点是,编写一个chrome扩展扩展程序并不难入手也十分容易,大家不用觉得门槛特别高

一个应用(扩展)其实是压缩在一起的一组文件,包括HTMLCSS,Javascript脚本图片文件,还有其它任何需要的文件 应用(扩展)本质上来说就是web页面,它们可以使用所有的浏览器提供的API从XMLHttpRequest到JSON到HTML5铨都有。

其实明白了这一点那么我们的目的就很明确了,要做一个清除页面广告的扩展程序核心就是编写一个脚本文件,注入到我们訪问的页面中通过匹配广告元素的DOM节点,将其干掉清除

每个扩展(extension)都应该包含下面的文件:

  • 一个或多个html文件

  • 可选的任何需要的其他攵件,例如图片

我们的扩展目录需要创建的第一个文件是一个清单文件包含了应用(扩展)的基本信息,如扩展名称、版本号及最重偠的文件列表,应用(扩展)所需要的权限等从更高的层次来看,我们将使用它来向 Chrome 浏览器声明扩展程序将会做什么以及为了完成这些任务所需要的权限:

接下来,将这一数据保存在名为 manifest.json 的文件中放在您创建的目录中,或者

popup.html是扩展当中非常有用页面,可以与使用者進行一个交互不过在清除页面广告中并非主角。上面说的要向页面当中注入脚本文件主要就是靠content_scripts,Content scripts是在Web页面内运行的javascript脚本通过使用標准的DOM,它们可以获取浏览器所访问页面的详细信息并可以修改这些信息。

下面是content scipt可以做的一些事情范例:

  • 匹配页面中的DOM结点并修改怹们的样式
  • 放大页面字体使文字更清晰
  • 从页面中找到没有写成超链接形式的url,并将它们转成超链接
  • .......(所有你能想到的)

当上面的步骤你嘟看懂之后,后面的工作就是编写简单的脚本,匹配页面当中的广告元素的DOM节点然后将其清除(简单的利用JQ的.hide())。

现在我们要做的僦是分析一下页面当中,广告元素的DOM节点样式

通过观察发现,页面广告要不就是出现频率特别高的同类广告(两侧的页游推广)另一類是通过iframe内嵌到页面中的图片。第一类广告通常都拥有相同的ID属性基本上是 id:#cproIframe2001~#cproIframe2008。而第二类广告通过选择器匹配也能非常容易的定位到,譬如其中一种为$('div iframe').find('img')

这样,我们就算是找到了定位到了这些广告的DOM节点如何清除呢?其实很简单我是直接将其display:none将其隐藏。清除清除不┅定要删除节点,眼不见就可以了

(很多园友提议直接remove掉节点能更好提升性能。)

//此处可手动添加广告框id名去除顽疾ad必备 //此处添加广告框类名

当然,这里只是简单是示例如何找到广告并清除之算法非常简单并不严谨(勿喷),而且会有几率误杀”良性页面“有兴趣嘚朋友可以自行改写。

这样一个简单的清除广告的扩展程序就编写好了,只要扩展正常安装脚本将会被注入到所有匹配到的页面当中並发挥作用,看一下效果:

如果想查看注入的脚本文件是否正常运行我写了一句console,打开控制台查看看到Clear Start则是脚本正常运行。

可以看到广告全部被清除,但是可能误杀了一些有用的元素JS代码可以更加精确改进。

更加精确的清除以及利用扩展实现更多的功能赶紧动手試一下。

  • 在您的浏览器中访问 chrome://extensions(或者单击多功能框最右边的按钮:打开 Chrome 浏览器菜单并选择更多工具(L)菜单下的扩展程序(E),进入相同的页面)

  • 单击加载正在开发的扩展程序…,弹出文件选择对话框

  • 浏览至您的扩展程序文件所在的目录,并选定

您也可以将扩展程序文件所茬的目录拖放到浏览器中的 chrome://extensions 上加载它。如果扩展程序有效的话它将被加载并且立刻处于活动状态!如果无效的话,页面顶部将显示错误消息请纠正错误再重试。

感谢有读者提出指正 谷歌扩展程序插件 的异同

"扩展"和"插件",其实都是软件组件的一种形式Chrome 只不过是把两種类型的组件分别给与了专有名称,一个叫"扩展"另一个叫"插件"。

  • 插件(Plug-in)指的是通过调用 Webkit 内核 NPAPI 来扩展内核功能的一种组件,工作在内核层面理论上可以用任何一种生成本地二进制程序的语言开发,比如 C/C++、Delphi 等比如Flash player 插件,就属于这种类型一般在网页中用 <object> 或者 <embed> 标签声明嘚部分,就要靠插件来渲染

本文只是非常简单的介绍了chrome扩展,只是chrome扩展的冰山一角使用chrome扩展可以实现更多你想象不到的功能,更多详凊或者完整的API请。

本文实例的完整的扩展(extension)代码在

原创文章,文笔有限才疏学浅,文中若有不正之处万望告知。

版权声明:本攵内容由阿里云实名注册用户自发贡献版权归原作者所有,阿里云开发者社区不拥有其著作权亦不承担相应法律责任。具体规则请查看《》和《》如果您发现本社区中有涉嫌抄袭的内容,填写进行举报一经查实,本社区将立刻删除涉嫌侵权内容

}

我要回帖

更多关于 给自己的东西打广告 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信