本域内网页数据的提取与导入(类似MAXTHON的智能填表)

目的是要完成本域内所有网页数据(文本框)信息的提取与导入。

方法:

为了达到能将不同网页(不能跨域)的数据(文本框)进行提取,我采用了IFRAME,即动态赋予IFRAME的SRC值。
现在关键是要能在IFRAME上进行矩形区域的选择,但IFRAME只能在被引用的网页中添加鼠标移动等事件,不能通过父页进行定义,
所以要考虑在主页上对IFRAME进行区域选择(这就要求IFRAME的宽高必须达到最大
οnlοad="this.height=myFrame.document.body.scrollHeight;this.width=myFrame.document.body.scrollWidth")
我的主要思路:
在IFRAME上覆盖一个与IFRAME一样大小的透明DIV,这样IFRAME相当于被屏蔽,只要在该DIV上进行区域选择即可。
矩形区域的选择的作法是弄一个半透明的DIV,然后通过拉伸该DIV达到区域选择的目的。
数据提取的做法步骤:
1、在IFRAME表面添加一个完全覆盖IFRAME的透明DIV
2、在当前窗口正中让选择框DIV显示
3、选择框的拉伸达到区域选择
4、获得所选区域内文本框信息(通过与所选区域坐标是否相交或包含来判断是否在区域内),将各文本框信息组装成长串(也要把每个文本框被读到的顺序INDEX存入)
5、把得到的字符串传到后台(在JS中将此值赋给某个HIDDEN 文本框就行)。对字符串进行拆分成一个个文本框
6、将文本框进行定位,主要是定位它们的行与列

   具体方法:
   定位操作步骤
   * 1、得到边界值
   * 2、采用拉网的方式,进行X方向的扫描
   * 如px`从边界左边开始,按width=10扫描,每次检测是否有文本框与其在同一列,
   * (同一列的意思是X有交集)
   * 有则找出与该文本框同列的框集合(无则py+=width继续扫描),再分别标记上列号,
   * px则定位到该集合中右下角X最大者,继续扫描,直至到右边界.
   * 3、Y扫描与2同样的方法

7、定位成功后按各自的行列写到EXCEL(采用response.getOutputStream()即可实现生成临时EXCEL来下载)中即可


EXCEL数据的导入(赋给所选区域的文本框):

1。与上面步骤一样的矩形选择区域

2。点导入按钮出现上传文件框,上传文件后,提交。这里还得将前台各输入框信息(可能没值,但有位置)传到后台(FORM要TARGET到隐藏的IFRAME中)并进行与上面一样的解析定位。

3。读取EXCEL内容,用HASHMAP存里面的信息,键值是行列组成的字符串

4。给后台的各文本框赋值,再组装成长串

5。利用IFRAME,调用父窗口的JS方法,将此长串返回给父窗口,通过该方法对长串进行解析,并根据文本框的INDEX进行赋值

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值