chrome扩展之3:一步步跟我学开发一个表单填写扩展

这节课实现的效果如下图所示:

图片点击可在新窗口打开查看
我们先想一想,怎么样才可以在搜索框上输入内容呢,当然可以手动输入^_^,除了这个之外呢?
如果您有这个页面的后台编辑权限就可以直接修改这个页面的内容。当然,这个页面是google的,
我们没有这个权限。虽然我们没有后台的权限,但我们可以获取到前台的权限,比如我们可以把这个文档
保存到本地,然后编辑。不过这不是我们想要的,我们有更好的方法。这个方法是什么呢?就是注入javascript,
意思就是让某个页面执行我们定义的一段javascript代码。那么这个页面你就可以随心所欲地修改了。
那么下面我们就说说注入的方法,javascript的注入是由manifest.json文件定义的,只要在上节课的
manifest.json文件中添加一个"content_scripts"字段即可,详细说明及代码如下:
以下内容为程序代码:

1 {
2     "name":"Hello Chrome",
3     "version":"1.0.0",
4     "icons":{
5         "48":"icon.png"
6     },
7     "browser_action":{
8         "default_title":"Hello browser action",
9         "default_icon":"action.png",
10         "popup":"popup.html"
11     },
12     "content_scripts":[{
13         "matches":["http://www.google.com.hk/*"],
14         "js":["inject.js"],
15         "run_at":"document_end"
16     }]

17 }
"matches"字段表示要注入到哪些页面,我们这个扩展是作用于http://www.google.com.hk,
所以这个字段的值就如上代码所示,我们还注意到上面所示的值有一个星号"*",这个符号的作用
是匹配任意以"http://www.google.com.hk/"开头的URL。所以我们注入的代码不紧是对
"http://www.google.com.hk"
而且也对"http://www.google.com.hk/imghp?hl=zh-CN&tab=wi&q=%E5%9C%A8google%E6%90%9C%E7%B4%A2%E6%A1%86%E4%B8%AD%E8%BE%93%E5%85%A5%E5%86%85%E5%AE%B9"
有效。
"js"字段显而易见的,表明注入的是哪个js文件。
"run_at"字段所表示的是javascript注入的时机,这里的时机是"document_end",表示在文档装载完毕时进行注入。
好的,我们编辑完了manifest.json文件,现在让我们添加一个名为inject.js的文件,代码如下所示:
以下内容为程序代码:

1 var e=document.getElementById("lst-ib");
2 e.value="在google搜索框中输入内容";

这节课完成的工程下载:http://files.cnblogs.com/JiangHuakey/1.2browser_action.zip

在笔者的chrome论坛上也可以找到该文章:http://www.chinachrome.net/dispbbs.asp?boardid=2&id=13&page=1&star=1

转载于:https://www.cnblogs.com/JiangHuakey/archive/2011/09/08/2171053.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 重置root密码

myini文件增加命令 (1)在my.ini文件的[mysqld]块下增加“skip_grant_tables”,然后重启mysql服务,再以管理员权限打开cmd执行一些列命令重置密码 mysql> use mysql;Database changedmysql> update user set authentication_…

[读书笔记]TCP/IP详解V1读书笔记-3

IP: 无连接:数据报到达没有先后顺序,处理先后发送的数据报之间没有关联。 不可靠:数据报丢失后没有处理,简单向源地址发送 ----------------------------- ---------------------------------- 网络字节序:…

CAL(1)

为什么80%的码农都做不了架构师?>>> CAL(1) BSD General Commands Manual CAL(1) NAME cal - displays a calendar SYNOPSIS cal [-smjy13] [[[day] month] year] DESCRIPTION Cal displays a simple calendar. If arguments …

vbox虚拟机配置Redhat6.4本地yum源

作为一个新手,配置这个yum源配了4天,遇到了各种问题,也按照网络上面一些方法在163上面下载CentOS6的yum源来替换Redhat本地的yum源,但是配置过程中,出现很多错误,发现直接在本地配置yum源会更便捷一点&…

美化系统

作为一个有强迫症都人,对系统都美化一定要做的!优雅都环境总给人带来美好都心情! 今天参照http://www.linuxidc.com/提供都方法着实把Ubuntu美化了了一下,尤其是shell终端,非常合适俺都口味! 上图 转载于:h…

毕业两年返校随想

就西安这个伤心之地我竟然可以连续呆上一周,真是难得。不过还好,有书看,在接连三天且比以前上研时还高的频率出现在母校的自习室后,我发现,原来我是如此地喜欢大学校园。 我全无要抢占“道德制高点”的意思&#xff0…

创建单IP的***网络

一、架构1.1现有网络现有网络架构如图一所示,其中服务器网段为192.168.0.x使用专门线路接入internet,192.168.88.x为网络设备网段,其它都是办公网段使用另外的线路接入internet。图一、现有网络结构图1.2 ***架构在图一所示的网络架构中搭建一…

为Java应用程序加上退出事件处理(ShutdownHook)

ShutdownHook 是这样一个概念:向虚拟机注册一个线程,当程序退出(CtrlC)时虚拟机会启动这个线程,我们可以在这个线程的run()中做一些清除的工作,如:释放数据库连接,关闭文件等. 注册: Runtime.getRuntime().addShutdownHook(Thread t); 注销: Runtime.get…

烂泥:利用Diskgen找回分区破坏前的资料

本文首发于烂泥行天下,由秀依林枫提供友情赞助。呵呵,好久没有写过博客了。看看时间上一篇博客应该是在一个月之前发布的,最近事情比较多大部分时间都是在出差。自己对技术也没有什么研究的,就说说这次项目中碰到的一个有关数据恢…

40幅非常精美的字体艺术作品欣赏(上篇)

这篇文章和大家分享40幅非常精美的字体艺术作品。字体原来也可以设计得这么美,真是不可思议,一起欣赏吧。 Computer Arts Magazine by Steven Bonner Tangled Handmade Font by Katya Belkina Typo Graphic Design by Andrei D. Robu Peace by Piece Fon…

mysql设置不区分大小写

mysql设置不区分大小写 1.windows下 到安装mysql的目录,修改my.ini文件 在文件最后一行加上下面一句话 lower_case_table_names1 lower_case_table_names 1说明 0:区分大小写,1:不区分大小写 效果如下 [mysqld] port 3306 b…

k8s 组件介绍-API Server

API Server简介 k8s API Server提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心。 kubernetes API Server的功能: 提供了集群管理的REST API接口(包括认证授权、数据校…

分布式版本控制系统入门

简介 在过去几年,对于分布式版本控制可以给开发过程提供的益处有许多争论。最近,分布式工具已经很成熟了。尽管分布式工具的一些优点最初可能不明显,但是从长期来看,它们提供的灵活性是非常有意义的。阅读完本文之后,您…

Hadoop源生实用工具之distcp

1 概览 DistCp(Distributed Copy)是用于大规模集群内部或者集群之间的高性能拷贝工具。 它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成。 它把文件和目录的列表作为map任务的输入,每个任务会完成源列表中…

如何使用spy ++ (How to use Spy ++)

一个网友在我的一篇随笔后问道,如何使用spy 查找要用到的窗体类名以及相关信息 现把相关作法整理如下 如果你装了vs.net,在vs.net的工具里面就可以看到spy 打开spy ,会以树状图显示当前系统所有的窗体信息,如下所示 然后找到…

PL/SQL Developer 9 注册机

软件下载:下载 注册机下载:下载 说明:测试版本--9.0.1.1613(无需替换文件,输入注册信息即可) 附图: 转载于:https://www.cnblogs.com/zhanqi/archive/2011/10/12/2208750.html

程序图片运行效果存在偏差问题

2019独角兽企业重金招聘Python工程师标准>>> 当图片放到高分辨率的文件夹下,运行程序的手机却是低分辨率时就会出现该问题。解决办法很容易,就是把图片换个文件夹。比如图片放到drawable-xhdpi下,而模拟器是480*800,图…

如何将android例子程序添加到Eclipse进行调试运行

website:http://blog.csdn.net/whwzm88/article/details/6342583 1、打开Eclipse,选择File->new->Android Project,如附图所示窗口: 2、选择Create project from existing source单选框,然后点击->Browse..., 找到想要查看的android例子目录: 备注&…

坦克大战 Java版

由于博客开通不久,以前没有博客,顺便把以前做的项目也介绍下 希望大家支持,谢谢 坦克大战 IDE:MyEclipse 9.0 语言:Java SE 数据库:由于是单机版,不需要较高的安全性,且数据量较小&a…

c# 扩展方法奇思妙用高级篇五:ToString(string format) 扩展

在.Net中,System.Object.ToString()是用得最多的方法之一,ToString()方法在Object类中被定义为virtual,Object类给了它一个默认实现: 1 publicvirtualstringToString()2 {3 returnthis.GetType().ToString();4 }.Net中原生的class…