分类
笃实好学

利用js填写网页表单

最近工作中需要在网页中提交数据来打印票证信息,经过几天的录入,感到不胜其烦,因为很多数据都是要重复录入的,这个工作对于我这个懒人来说太困难了,不只是懒的原因,重复做着同样的工作,对于我来说就是在虚度光阴,我想把时间用在有意义的地方,这些重复操作就应该交给电脑去处理,好了,言归正传,首先来说说javascript自动填写网页表单是怎么实现的。

最近工作中需要在网页中提交数据来打印票证信息,经过几天的录入,感到不胜其烦,因为很多数据都是要重复录入的,这个工作对于我这个懒人来说太困难了,不只是懒的原因,重复做着同样的工作,对于我来说就是在虚度光阴,我想把时间用在有意义的地方,这些重复操作就应该交给电脑去处理,好了,言归正传,首先来说说javascript自动填写网页表单是怎么实现的。

比如有一个管理系统,里面有无数个表单,需要你去不停的录入数据,数据里面有80%的数据都是相同的,每次都需要重复录入,数据条数不多的情况还好,如果几十条,或者每天都需要录入,那工作量很大,每天就只剩录入数据了,导致没时间做其他的事情,其实我想实现的目标很简单,就是手指一点,重复是数据自动填写进网页表单,无需再做打字之类的重复动作,首先编写一段代码,用框架来实现,用百度来做实例。

<!DOCTYPE HTML>
<html>
    <body>
        <a href="javascript:alert('我会自动填写表单');" target="test">baidu</a>
        <iframe src="http://www.baidu.com" name="test"></iframe>
    </body>
</html>

当点击超链接时无法弹出对话框,才知道JavaScript出于安全方面的考虑,这框架违反了同源政策,是不允许跨域操作的,好在chrome浏览器支持可跨域的设置,当设置完可跨域时,换成我需要的网址后发现对方网站设置了 X-Frame-Options: sameorigin,显示此内容不能显示在一个框架中,所以该方法无法实现,废弃。

一筹莫展的时候寻求度娘帮助,原来可以利用浏览器的收藏夹(书签)功能寄存js代码来实现,不得不惊叹,网友的智慧真是无穷无尽,首先随便收藏一个网址,打开浏览器的“收藏夹”,刚刚收藏的网址点右键,把URL里的连接地址修改为:

javascript:alert('我会自动填写表单');

这样点击刚收藏的网址就会弹出对话框,执行了js代码那就好办了,下面是相关填写代码。

使用ID填写表单:

document.getElementById('ID').value = '文字';

使用Name填写表单:

document.getElementsByName('Name')[0].value = '文字';

本想用后台提取数据来填写的,看来无法实现完全自动,虽然不太理想,但也提高了工作效率,最主要的是数据不会有误,在查找表单ID和Name的时候需要用到浏览器的F12功能,中间有一个错误,有必要记录一下:

IE浏览器升级到11版本后,F12打开开发者工具,如果报以下错误:

Exception in window.onload: An error has occuredJSPlugin.3005

解决方法:安装Windows7补丁:KB3008923;

Windows7-32位

http://www.microsoft.com/zh-CN/download/details.aspx?id=45134

Windows7-64位

https://www.microsoft.com/zh-cn/download/details.aspx?id=45154

因为这是公司电脑,几乎都用的是Windows7的系统,还有一台目前仍在使用Windows XP系统。

发表评论

电子邮件地址不会被公开。 必填项已用*标注