CN102637194A - BHO中对Web页面元素后绑定事件的触发方法 - Google Patents

BHO中对Web页面元素后绑定事件的触发方法 Download PDF

Info

Publication number
CN102637194A
CN102637194A CN2012100449312A CN201210044931A CN102637194A CN 102637194 A CN102637194 A CN 102637194A CN 2012100449312 A CN2012100449312 A CN 2012100449312A CN 201210044931 A CN201210044931 A CN 201210044931A CN 102637194 A CN102637194 A CN 102637194A
Authority
CN
China
Prior art keywords
script
function
incident
bho
page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012100449312A
Other languages
English (en)
Other versions
CN102637194B (zh
Inventor
杨玉奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CHANGCHUN JIDA ZHENGYUAN INFORMATION TECHNOLOGY Co Ltd
Original Assignee
CHANGCHUN JIDA ZHENGYUAN INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CHANGCHUN JIDA ZHENGYUAN INFORMATION TECHNOLOGY Co Ltd filed Critical CHANGCHUN JIDA ZHENGYUAN INFORMATION TECHNOLOGY Co Ltd
Priority to CN201210044931.2A priority Critical patent/CN102637194B/zh
Publication of CN102637194A publication Critical patent/CN102637194A/zh
Application granted granted Critical
Publication of CN102637194B publication Critical patent/CN102637194B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种BHO中对Web页面元素后绑定事件的触发方法,属于计算机WEB页面处理领域。该方法在发现需要执行的事件是个后绑定事件时,利用在页面嵌入定时脚本,由定时脚本定期检查是否相应事件已被设置,当发现事件已被设置时,由脚本调用相应事件;达到无论在什么情况下都可以使希望的事件能正确执行的目的。优点在于:让BHO组件在页面元素响应事件后绑定的情况下也能成功执行相应函数。

Description

BHO中对Web页面元素后绑定事件的触发方法
技术领域
本发明的BHO中对Web页面元素后绑定事件的触发方法涉及计算机WEB(万维网)页面处理领域,特别涉及一种需要自动化处理网页及页面元素的响应的方法,尤指一种页面元素响应事件被动态设置的情况下以程序触发该事件的情况。
背景技术
很多时候,我们需要对一些网站用程序进行自动登录,在IE(Internet Explorer, 因特网浏览器)中,我们经常使用BHO(Browser Helper Objects,浏览器帮助者对象)组件来实现该类功能,我们会在网页显示出来后,自动填充登录所需要的用户名和口令,然后模拟点击“登录”按钮,执行按钮的onClick(鼠标单击)事件,完成自动登录。
一般一个完成自动登录的BHO,实现过程如下:在BHO的Invoke方法中,当dispidMember参数等于DISPID_DOCUMENTCOMPLETE时,表示一个WEB页面的内容已被浏览器加载完毕,准备显示了,我们在这里对页面数据进行分析。
1、通过IWebBrowser2接口的get_LocationURL方法获得当前页面的URL(Universal Resource Locator 统一资源定位符)地址,比对此URL地址,看是否是我们需要处理的页面,如果不是,那么就不处理该页面了;如果是,进行下面的步骤。
2、检查网页是否含有口令输入框:遍历所有<input>元素,通过IHTMLElement接口的getAttribute("type")方法获得他们的type属性值,如果其type属性为“password”,那么就是口令框。如果页面没有口令输入框,那么说明该页面可能是已经完成过登录的,就是登录后的页面,此时已经不需要再做自动登录处理;如果页面上含有口令输入框,那么说明该页面还没有登录,需要进行自动登录,进行下面的步骤。
3、填充用户名:遍历所有<input>元素,检查他们的id和name属性,如果这个属性与我们预先保存的用户名的标记一致,那么说明这个是我们需要填充的用户名输入框,那么,我们将预先设置的用户名值通过setAttribute("value")方法设置到该页面元素中。
4、填充口令:遍历所有<input>元素,检查他们的type属性,如果其type属性为“password”,那么就是口令框,那么,我们将预先设置的口令值通过setAttribute("value")方法设置到该页面元素中。
5、查找其他需要填充的输入内容(例如:单选钮、复选框):遍历所有<input>元素,检查他们的id和name属性,如果这个属性与我们预先保存的准备填充的内容的标记一致,那么说明这个是我们需要填充的输入内容,那么,我们将预先设置的输入内容通过setAttribute("value")方法或者put_checked()方法设置到该页面元素中。
6、找到登录按钮:如果我们预先存储的登录按钮,是点击一个图片,那么我们遍历所有的<image>元素;如果我们预先存储的登录按钮,是点击一个<button>元素,那么我们遍历所有的<button>元素;检查他们的id和name属性,如果这个属性与我们预先保存的登录按钮的标记一致,那么说明这个是我们需要模拟点击的按钮;如果我们预先存储的登录按钮,是点击一个<submit>元素,那么我们遍历所有的<input>元素,检查他们的type属性,如果其type属性为“submit”,那么就是我们需要模拟点击的按钮。
7、模拟点击:在获得登陆按钮元素后,通过IHTMLElement接口的click()方法,我们就可以实现模拟点击;调用此方法后,页面会执行登录过程。
       一般传统的WEB页面,在设置onClick事件时,都是静态直接写到控件的属性中的,例如:<INPUT type=”button” id=”sub” onClick=”doSubmit()”>。此时我们在BHO中当页面加载完成后,我们可以找到该按钮,并且调用该按钮的click()方法,就可以使doSubmit()函数运行,达到自动登录的效果。
随着MVC(Model View Controller, 模型 视图 控制器)开发框架的流行,在WEB页面中,页面元素的处理事件经常是用Java Script(一种让网页更加生动的脚本语言)后绑定的,即:当页面加载完成后,触发Java Script函数,该函数找到相应的按钮元素,设置它的onClick事件;那么在页面中,静态的HTML(HyperText Markup Language 超文本标记语言)往往写为:<INPUT type=”button” id=”sub”>,没有相应的onClick响应函数,此时在BHO中,当页面加载完成后,我们调用按钮的click()方法,模拟按钮单击事件的执行,但此时按钮的onClick事件还未设置,所以会触发失败。
发明内容
本发明的目的在于提供一种BHO中对Web页面元素后绑定事件的触发方法,解决了在后绑定事件的情况下模拟失败的问题,可以让BHO组件在上述这种事件后绑定的情况下也能成功调用相应函数,克服现有方法在页面元素事件后绑定时,无法模拟的缺陷,使得无论是静态的HTML脚本,还是利用Java Script动态生成的脚本,都可以被正确的执行。
本发明的上述目的通过以下技术方案实现:
BHO中对Web页面元素后绑定事件的触发方法,在发现需要执行的事件是个后绑定事件时,利用在页面嵌入定时脚本,由定时脚本定期检查是否相应事件已被设置,当发现事件已被设置时,由脚本调用相应事件;达到无论在什么情况下都可以使希望的事件能正确执行的目的,其具体步骤如下:
1.      BHO拦截页面加载完成事件;
2.      分析页面内容,并进行相应处理;
3.      利用WEB页面元素特征(例如:name 或 id)找到该元素;
4.      根据DOM(Document Object Model 文件物件模型)对象函数,获得该元素的相应属性(例如:onClick)值;
5.      如果该属性有值,即需要调用的函数,那么调用该函数,流程结束;
6.      如果该属性没有值,那么生成延时脚本SDelay:
a)      生成脚本定时器Time1,该脚本定时器定时(例如:1秒)执行定时函数fnTime;
b)      生成定时函数fnTime,该函数为脚本函数(例如:java Script或 VB Script等);
c)      定时函数fnTime中,利用WEB页面元素特征(例如:name 或 id)找到相应元素;
d)      判断相应属性是否有值,如果没有值,则继续等待下次定时时间到;
e)      该相应属性如果有值则调用该函数;
f)       调用完毕,销毁定时器Time1,结束;
7.      将该套脚本SDelay嵌入当前页面内容,设置为在页面加载完成后,被IE浏览器执行。
本发明的有益效果在于:让BHO组件在页面元素响应事件后绑定的情况下也能成功执行相应函数,克服了现有方法在页面元素事件后绑定时,无法模拟的缺陷,使得无论是静态的HTML脚本,还是利用Java Script动态生成的脚本,都可以被正确的执行,实用性强。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明的流程示意图。
具体实施方式
下面结合附图进一步说明本发明的详细内容及其具体实施方式。
参见附图1所示,该具体实施例是对某网站的登录页面,进行自动登录,会自动填充已注册的用户名和口令并模拟点击“登录”按钮。
1.      BHO拦截DISPID_DOCUMENTCOMPLETE事件,开始处理;
2.      分析页面内容,发现页面加载完毕,并且是需要登录的网站,那么填充相应的用户名和口令;
3.      根据登录按钮的id,获得该登录按钮IHTMLElement对象spEleSubmit;
4.      调用spEleSubmit->getAttribute函数,获得该登录对象的"onclick"属性值vOnClick;
5.      如果vOnClick有值,那么调用spEleSubmit->click()方法,流程结束;
6.      如果vOnClick没有值,那么生成延时脚本SDelay:
a)      通过setInterval('OnTimeClick()', 1000);")生成脚本定时器ClickInterval,该脚本定时器定时每隔1秒执行OnTimeClick();
b)      编写OnTimeClick()函数。
c)      在定时函数OnTimeClick()中,通过document.getElementById ()获得按钮对象targetItem;
d)      判断targetItem. click是否为空,如果为空,则结束函数,继续等待下次定时时间到;
e)      如果targetItem. Click不为空,那么调用targetItem. Click()函数。
f)       调用完毕,通过clearInterval(yyqClickInterval);销毁定时器,结束;
7.  通过insertAdjacentHTML(BSTR(L"afterEnd"), SDelay);将该套脚本嵌入当前页面内容,设置为在页面加载完成后,被IE浏览器执行。
以上所述仅为本发明的优选实例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (1)

1. 一种BHO中对Web页面元素后绑定事件的触发方法,在发现需要执行的事件是个后绑定事件时,利用在页面嵌入定时脚本,由定时脚本定期检查是否相应事件已被设置,当发现事件已被设置时,由脚本调用相应事件;达到无论在什么情况下都可以使希望的事件能正确执行的目的,其具体步骤如下:
(1)、BHO拦截页面加载完成事件;
(2)、分析页面内容,并进行相应处理;
(3)、利用WEB页面元素特征找到该元素;
(4)、根据DOM对象函数,获得该元素的相应属性值;
(5)、如果该属性有值,即需要调用的函数,那么调用该函数,流程结束;
(6)、如果该属性没有值,那么生成延时脚本SDelay:
a)、生成脚本定时器Time1,该脚本定时器定时执行定时函数fnTime;
b)、生成定时函数fnTime,该函数为脚本函数;
c)、定时函数fnTime中,利用WEB页面元素特征找到相应元素;
d)、判断相应属性是否有值,如果没有值,则继续等待下次定时时间到;
e)、该相应属性如果有值则调用该函数;
f)、调用完毕,销毁定时器Time1,结束;
(7)、将该套脚本SDelay嵌入当前页面内容,设置为在页面加载完成后,被IE浏览器执行。
CN201210044931.2A 2012-02-27 2012-02-27 BHO中对Web页面元素后绑定事件的触发方法 Active CN102637194B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210044931.2A CN102637194B (zh) 2012-02-27 2012-02-27 BHO中对Web页面元素后绑定事件的触发方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210044931.2A CN102637194B (zh) 2012-02-27 2012-02-27 BHO中对Web页面元素后绑定事件的触发方法

Publications (2)

Publication Number Publication Date
CN102637194A true CN102637194A (zh) 2012-08-15
CN102637194B CN102637194B (zh) 2013-10-02

Family

ID=46621588

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210044931.2A Active CN102637194B (zh) 2012-02-27 2012-02-27 BHO中对Web页面元素后绑定事件的触发方法

Country Status (1)

Country Link
CN (1) CN102637194B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699840A (zh) * 2013-12-12 2014-04-02 北京奇虎科技有限公司 网页劫持的检测方法和装置
CN105574043A (zh) * 2014-10-17 2016-05-11 中国移动通信集团公司 一种Web应用的前端页面的处理方法及装置
CN106549920A (zh) * 2015-09-21 2017-03-29 华为终端(东莞)有限公司 登录信息输入方法、登录信息保存方法及相关装置
CN108089856A (zh) * 2016-11-22 2018-05-29 北京国双科技有限公司 一种页面元素的监听方法及装置
CN109218799A (zh) * 2017-07-01 2019-01-15 武汉斗鱼网络科技有限公司 安卓电视快速切换高清图的方法、存储介质、设备及系统
CN109359258A (zh) * 2018-09-14 2019-02-19 四川长虹电器股份有限公司 一种自动触发浏览器动作的系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1700644A (zh) * 2004-05-22 2005-11-23 乐金电子(中国)研究开发中心有限公司 一种用于网站自动登录的移动通信终端及其方法
CN1750713A (zh) * 2005-10-20 2006-03-22 中国移动通信集团公司 自动登录业务的方法
US20080140703A1 (en) * 2001-08-28 2008-06-12 Zondervan Quinton Y Method for sending an electronic message utilizing connection information and recipient information
CN101976260A (zh) * 2010-11-04 2011-02-16 上海银杏界信息科技有限公司 一种可视化标签及使用其生成网页的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140703A1 (en) * 2001-08-28 2008-06-12 Zondervan Quinton Y Method for sending an electronic message utilizing connection information and recipient information
CN1700644A (zh) * 2004-05-22 2005-11-23 乐金电子(中国)研究开发中心有限公司 一种用于网站自动登录的移动通信终端及其方法
CN1750713A (zh) * 2005-10-20 2006-03-22 中国移动通信集团公司 自动登录业务的方法
CN101976260A (zh) * 2010-11-04 2011-02-16 上海银杏界信息科技有限公司 一种可视化标签及使用其生成网页的方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699840A (zh) * 2013-12-12 2014-04-02 北京奇虎科技有限公司 网页劫持的检测方法和装置
CN105574043A (zh) * 2014-10-17 2016-05-11 中国移动通信集团公司 一种Web应用的前端页面的处理方法及装置
CN105574043B (zh) * 2014-10-17 2019-10-25 中国移动通信集团公司 一种Web应用的前端页面的处理方法及装置
CN106549920A (zh) * 2015-09-21 2017-03-29 华为终端(东莞)有限公司 登录信息输入方法、登录信息保存方法及相关装置
CN108089856A (zh) * 2016-11-22 2018-05-29 北京国双科技有限公司 一种页面元素的监听方法及装置
CN109218799A (zh) * 2017-07-01 2019-01-15 武汉斗鱼网络科技有限公司 安卓电视快速切换高清图的方法、存储介质、设备及系统
CN109218799B (zh) * 2017-07-01 2021-04-27 武汉斗鱼网络科技有限公司 安卓电视快速切换高清图的方法、存储介质、设备及系统
CN109359258A (zh) * 2018-09-14 2019-02-19 四川长虹电器股份有限公司 一种自动触发浏览器动作的系统及方法

Also Published As

Publication number Publication date
CN102637194B (zh) 2013-10-02

Similar Documents

Publication Publication Date Title
CN102637194B (zh) BHO中对Web页面元素后绑定事件的触发方法
CN106126249B (zh) 一种在前端实现行为、数据、视图联动的方法及系统
US8924943B2 (en) Browser emulator system
JP5511845B2 (ja) マークアップ言語を通してクライアント・ブラウザ状態のサーバ側ロギングを遂行するための方法
CN103856493B (zh) 跨域登录系统及方法
CN107688529B (zh) 组件调试方法和装置
US10362089B1 (en) Methods and systems for dynamically generating and reusing dynamic web content
CN102143016B (zh) 网站自动化测试方法和系统
CN107729385A (zh) 一种采集动态网页完整数据内容的方法
CN104267944A (zh) 一种基于Spring的MVC模式优化系统
CN101876897A (zh) 用于在Web浏览器上处理Widget的系统和方法
CN106406851A (zh) 一种网页截图方法、系统
CN105556505A (zh) 遗产系统
CN110516139A (zh) 爬虫系统及方法
CN103902534A (zh) 一种网页程序触发本地操作的方法和装置
CN113296653A (zh) 一种仿真交互模型构建方法、交互方法及相关设备
TW201441837A (zh) 用戶控制項載入系統及方法
US10728095B2 (en) Client-configured server class tracing to a configurable threshold
CN106528118A (zh) 一种模态和非模态窗口在浏览器中兼容性的解决方法
CN104834594B (zh) web系统测试方法及装置
CN111880789A (zh) 页面渲染方法、装置、服务端和计算机可读存储介质
Losada et al. Efficient execution of web navigation sequences
Tao et al. An Approach to Mobile Application Testing Based on Natural Language Scripting.
CN103885988A (zh) 输出内容的方法及装置、内容输出系统
Hernandez et al. A Meta-model to Support Regression Testing of Web Applications.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant