chrome组件开发--填表组件简单例子

主要参考开发指导(在大陆想打开,必要时,翻墙!):https://developer.chrome.com/extensions/devguide

这周末公司组织旅游,那边发过来了一个填表页的页面,填的信息多,我们人数也不少.如果一个字段一字段复制,我觉得是比较麻烦事.我想是否有一个可以自动填写的工具.于是萌发了怪想法.开发完最后的效果如下图


1.split就是分隔符;
2.keys就是填写的字段id,id之间以上面选择的分隔符来分隔;
3.values就是要填写的字段值,值之间以上面选择的分隔符来分隔;
填好三个东西,点一下填写,那页面的值就会被填充进去.当然对于具体某个表单和已知的来源数据,改一下代码,只需要填values就好,填写也用change事件监听好了,按钮也省了!


一.开发

1.manifest.json

{
    "manifest_version": 2,
    "name": "MyApplication",
    "version": "1.0",
    "browser_action": {
        "default_title": "click me",
	"default_icon":"icon.png",
	"default_popup":"popup.html"
    },
    "permissions":["tabs", "http://*/*", "https://*/*"]
}
2.popup.html
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style type="text/css">
body { overflow: hidden; margin: 0px; padding: 0px; background: white; }
.tbRow { display:table-row; width:200px; }
.tbCell { display:table-cell }
.tbName { text-align:right; vertical-align:middle; }
.tbValue { }
#names { width:300px; }
#values { width:300px; height:200px; }
</style>
<script type="text/jscript" src="popup.js"></script>
</head>
<body>
<div class="tbRow">
  <div class="tbCell tbName">split:</div>
  <div class="tbCell tbValue">
    <input type="radio" id="split0" name="split" value="|" checked="checked"/>|
      <input type="radio" id="split1" name="split" value=":"/>:
      <input type="radio" id="split2" name="split" value=","/>,
  </div>
</div>
<div class="tbRow">
  <div class="tbCell tbName">keys:</div>
  <div class="tbCell tbValue">
    <input type="text" id="names" name="names"/>
  </div>
</div>
<div class="tbRow">
  <div class="tbCell tbName">values:</div>
  <div class="tbCell tbValue">
    <textarea type="text" id="values" id="values"></textarea>
  </div>
</div>
<div class="tbRow">
  <div class="tbCell tbName"></div>
  <div class="tbCell tbValue">
    <input id="btnFill" type="button" value="填写"/>
  </div>
</div>
</body>
</html>
3.popup.js
function btnFillListener(){
	/*分隔符*/
	var splits=document.getElementsByName("split");
	var seperate='|';
	for(var i=0;i<splits.length;i++){
		if(splits[i].checked){
			seperate=splits[i].value;
			break;
		}
	}
	/*所有字段id,id之间以分隔符分隔*/
	var names=document.getElementById("names").value;
	/*所有字段value,value之间以分隔符分隔*/
	var values=document.getElementById("values").value;
	/*将param对象发送到handle.js*/
	var param={"seperate":seperate,"names":names,"values":values};
	chrome.tabs.executeScript(null, {
		code: "var param="+JSON.stringify(param)+";"
	}, function(){
		chrome.tabs.executeScript(null, {
			file:"handle.js"
		});
	});
}
document.addEventListener('DOMContentLoaded',function(){
	document.getElementById("btnFill").addEventListener('click',btnFillListener);
});
4.handle.js
var seperate=param.seperate;
var names=param.names.split(seperate);
var values=param.values.split(seperate);
if(names.length==values.length){
	for(var i=0;i<names.length;i++){
		var element=document.getElementById(names[i]);
		if(element){
			element.value=values[i];
		}
	}
}else{
	console.log('data err');
	
}
二.测试
1.工具->扩展程序->勾上开发者模式->加载下在开发的扩展程序->选择这个文件夹->确定
2.打开QQ注册页面:http://zc.qq.com/chs/index.html,keys填nick|password|password_again|year_value|month_value|day_value,values填中国|aq123eqeq|aq123eqeq|2000年|12月|10日,点填写,看效果


因为不够人性化,所以只对程序猿有些作用!


源码:http://download.csdn.net/detail/xiejx618/7751187


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值