主要参考开发指导(在大陆想打开,必要时,翻墙!):https://developer.chrome.com/extensions/devguide
2.keys就是填写的字段id,id之间以上面选择的分隔符来分隔;
3.values就是要填写的字段值,值之间以上面选择的分隔符来分隔;
填好三个东西,点一下填写,那页面的值就会被填充进去.当然对于具体某个表单和已知的来源数据,改一下代码,只需要填values就好,填写也用change事件监听好了,按钮也省了!
一.开发
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日,点填写,看效果
这周末公司组织旅游,那边发过来了一个填表页的页面,填的信息多,我们人数也不少.如果一个字段一字段复制,我觉得是比较麻烦事.我想是否有一个可以自动填写的工具.于是萌发了怪想法.开发完最后的效果如下图
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.youkuaiyun.com/detail/xiejx618/7751187