Chrome扩展,应用开发学习笔记之2

恶搞百度一下

前面我们介绍了一个最简单的chrome扩展时钟,如今我来介绍一下一个恶搞百度一下的chrome扩展程序。

前面说过,manifest.json文件是用来描写叙述这个扩展的,是整个扩展的入口,同一时候也是告诉chrome怎么处理这个扩展。

恶搞百度一下:

以下我们来编写一个恶搞百度一下的扩展程序,希望从这个实例中,对于chrome拓展有一个更好的认识。先看看这个拓展的效果,例如以下图:

从图中我们能够猜到,其功能就是让你无法点击百度一下那个button。

先新建一个目录,取名“egao_baidu”(这个名字任意能够)。然后在目录中新建一个menifest.json的文件

以下看一下menifest.json文件的内容。

{
"manifest_version": 2,
"name": "永远点不到的搜索button",
"version": "1.0",
"description": "让你永远也点击不到baidu的搜索button",
"content_scripts": [
{
"matches": ["*://www.baidu.com/"], //这里匹配随意的包括://www.baidu.com/,意思是当訪问的页面url匹配时,以下的脚本文件就会自己主动运行
"js": ["js/haha.js"] // 这里的脚本文件是haha.js
}
]
}

先看一下百度一下html源文件的一些信息:

从源文件的内容上看,百度一下的id是su,看以下haha.js怎样使用它

从上面的manifest.json文件内容看,主要吸引人的部分是haha.js。来看一下这个文件的内容。

function btn_move(el, mouseLeft, mouseTop){
var leftRnd = (Math.random()-0.5)*20;
var topRnd = (Math.random()-0.5)*20;
var btnLeft = mouseLeft+(leftRnd>0?100:-100)+leftRnd;
var btnTop = mouseTop+(topRnd>0?30:-30)+topRnd;
btnLeft = btnLeft<100?(btnLeft+window.innerWidth-200):(btnLeft>window.innerWidth-100?btnLeft-window.innerWidth+200:btnLeft);
btnTop = btnTop<100?( btnTop+window.innerHeight-200):(btnTop>window.innerHeight-100?btnTop-window.innerHeight+200:btnTop);
//随机生成一些数,然后简单地推断一下位置的信息,不要超出窗体显示范围。 el.style.position = 'fixed';
el.style.left = btnLeft+'px';
el.style.top = btnTop+'px';
} function over_btn(e){
if(!e){
e = window.event;
}
btn_move(this, e.clientX, e.clientY);
} document.getElementById('su').onmouseover = over_btn; // 从源文件里的信息 百度一下 button的 id 是su,通过它获取button,设置鼠标移至button上的反应

好了,这个恶搞百度一下扩展的内容介绍完成,完整的代码能够从这里获取。https://github.com/ZHONGHuanGit/Chrome_extensions_example/tree/master/egao_baidu

扩展安装方式和前面一篇介绍的一样。能够看这里http://blog.csdn.net/zhonghuan1992/article/details/40269647

參考资料:

Chrome扩展及应用开发 (PS:非常赞赏该作者的人格,不仅书籍共享,而且将全部捐款奉献给壹基金。献上购买电子版的地址:http://www.ituring.com.cn/book/1472

Chrome扩展,应用开发学习笔记之2---恶搞百度一下的更多相关文章

  1. 【前端】移动端Web开发学习笔记【1】

    下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...

  2. Rest API 开发 学习笔记(转)

    Rest API 开发 学习笔记 概述 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式.获得这些表徵致使这些应用程序转变了其状态.随着 ...

  3. 步步为营 SharePoint 开发学习笔记系列总结

    转:http://www.cnblogs.com/springyangwc/archive/2011/08/03/2126763.html 概要 为时20多天的sharepoint开发学习笔记系列终于 ...

  4. 【前端】移动端Web开发学习笔记【2】 & flex布局

    上一篇:移动端Web开发学习笔记[1] meta标签 width设置的是layout viewport 的宽度 initial-scale=1.0 自带 width=device-width 最佳实践 ...

  5. 驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址

    驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址 最近重新看了乾龙_Heron的<ARM 上电启动及 Uboot 代码分析>(下简称<代码分析>) ...

  6. android开发学习笔记000

    使用书籍:<疯狂android讲义>——李刚著,2011年7月出版 虽然现在已2014,可我挑来跳去,还是以这本书开始我的android之旅吧. “疯狂源自梦想,技术成就辉煌.” 让我这个 ...

  7. 高性能Cordova App开发学习笔记

    高性能Cordova App开发学习笔记 文件结构 添加插件 构建准备 各个www的作用,prepare命令会将hello\www的内容会拷贝到platform下的wwww目录,知道该改哪里了吧?如果 ...

  8. Kinect开发学习笔记之(一)Kinect介绍和应用

    Kinect开发学习笔记之(一)Kinect介绍和应用 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.Kinect简单介绍 Kinectfor Xbox ...

  9. ASP.NET Core Web开发学习笔记-1介绍篇

    ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...

随机推荐

  1. iOS开发Quartz2D之 七:雪花效果

    #import "VCView.h" @implementation VCView -(void)awakeFromNib { //[NSTimer scheduledTimerW ...

  2. ArcGIS二次开发入门(一)

    作者:朱金灿 来源:http://blog.csdn.net/clever101 公司培训ArcGIS二次开发(C#作为开发语言),自己回家动手实践了一下. 1. 首先是二次开发环境的安装(AE 10 ...

  3. Linux下 kprobe工具的使用

    此处转载: 一.Kprobe简单介绍 kprobe是一个动态地收集调试和性能信息的工具,它从Dprobe项目派生而来,是一种非破坏性工具,用户用它差点儿能够跟踪不论什么函数或被运行的指令以及一些异步事 ...

  4. dnf游戏外怪原理

    dnf游戏外怪原理 一.总结 一句话总结:用钩子,修改内存.找到存储数据的内存,修改内存的执行代码达到修改数据的目的,修改了数据之后再改回来. 1.如何找到存储数据的内存? 然后数据变化,用软件找变化 ...

  5. [tmux] Customize tmux with tmux.conf

    You can modify tmux's behavior with your tmux configuration file, .tmux.conf. You can use your tmux ...

  6. windows下的定时任务设置详解

    windows下的定时任务设置详解 一.总结 一句话总结: 1.php.exe是什么? 就是php中自带的一个exe,不是我们写的,这个exe是可以执行其他的PHP的 二.windows下的定时任务设 ...

  7. Material Designer的低版本兼容实现 —— ActivityOptionsCompat

    http://www.bubuko.com/infodetail-460163.html

  8. Qt 连接MySQL数据库(很多相关文章)

    今天想试试Qt如何连接数据库的. 谁知怎么写完了提示driver not loaded我就郁闷了. 我自己是 VS2010 + Qt4.8.4 + MySQL5.1 的环境 网上查到是 C:\Qt\4 ...

  9. 使用Toolbar + DrawerLayout快速实现高大上菜单侧滑

    如果你有在关注一些遵循最新的Material Design设计规范的应用的话(如果没有,假设你有!),也许会发现有很多使用了看起来很舒服.很高大上的侧滑菜单动画效果,示例如下(via 参考2): 今天 ...

  10. php如何实现万年历的开发(每日一课真是非常有效率)

    php如何实现万年历的开发(每日一课真是非常有效率) 一.总结 一句话总结: 1.判断每月有多少天: 通过data函数来判断,$days=date('t',$firstday); 2.判断每月的第一天 ...