admin管理员组

文章数量:1531979

2024年1月11日发(作者:)

利用PowerBuilder实现对IE 浏览器的调用与控制

2005 深圳HH

摘要:本文描述了如何通过PowerBuilder开发工具实现对IE浏览器的调用与控制。

关键词:PowerBuilder;IE;Web Browser

1. 引言

PowerBuilder是数据库前端应用开发的主流编程工具。

随着计算机的普及应用,越来越多的计算机用户对软件系统提出更高的要求。随着网络时代到来,过去基于CS模式的软件系统逐渐趋向于BS模式,同时出现了很多工提供软件系统在各模式间的转换。但这些工具的辅助工作只能将软件系统从一个模式转换为另一种模式,而丢弃了原有模式存在的一些优点,往往这些优点是在一些软件系统中必不可少的。

为了满足日益提高的用户需求,在保留现有CS模式软件系统特点的同时,在系统中增加BS的血液。如何实现这样的需求?如何实现这样的功能呢?本文将阐述如何通过PowerBuilder开发工具实现对IE浏览器的调用与控制。

2. 使用环境的介绍

IE(Internet Explorer)是微软提供的网页浏览器,通过它可以实现在万维网或其它网站系统上的网页浏览,它是绑定Windows操作系统发布的,它提供供二次开发使用的ActiveX控件,所以在Windows平台上我们可以找到IE提供的浏览器控件,被命名为Microsoft Web Browser。本文的实现方法就是通过对浏览器控件的访问操作实现对IE的调用与控制。

在Windows平台操作系统上,该控件被注册在系统内,通过PowerBuilder的Browser工具可以查看浏览器的详细信息。如图1

图1

能够在该工具上查看浏览器的属性、事件、方法。这些为我们编写程序提供了帮助。

3. 方法事件说明

事件:

DocumentComplete (oleobject pdisp,any url):当页面文档被完全下载和初始化时触发该事件。

Titlechange (string text):页面Title改变时触发该事件。

navigatecomplete2 (oleobject pdisp,any url):本事件是当WebControl完成对新地址的导向后触发该事件。

downloadcomplete:当一个导航操作完成、中止或失败时触发该事件。

progresschange(long progress,log progressmax):记录当前页面的进度值,最大值和变化值,同时通知界面进度发生变化

方法:

Navigate(string url):将导航到指定的url地址。

GoBack:向后返回到上一页面。

GoForward:向前切换到下一页面。

4. 实现方法

首先创建工作区PBBrowse,建立应用PBApp。

建立w_main窗口,用该窗口作为程序的主界面,在该界面中增加浏览器控件来实现对浏览器的调用和控制。

在w_main窗口中增加以下控件:

增加静态文本命名为st_url,text名称是 “地址:”。

增加单行文本编辑框命名为sle_url,用于输入网络地址url。

增加按钮命名为cd_navigate,Text名称是“导航”,用于进行网络地址的导航控制。

增加按钮命名为cd_forward,Text名称是“向前”,用于控制浏览器导航到下一页。

增加按钮命名为cd_backward,Text名称是“后退”,用于控制浏览器导航到上一页。

增加进度条控件命名为hpb_process,用于显示导航页面加载的执行进度。

增加静态文本命名为st_title,用于显示导航页面的title名称。

增加图片控件,命名为p_exit,使用表示退出的图片,该按钮功能是执行程序终止退出功能。

在应用PBApp的open事件下增加如下代码:

Open(w_main) //打开程序主界面

在w_main的open事件中增加如下代码:

Cd_d = false //在程序启动时控制向前按钮不可用

Cd_d = false //在程序启动时控制后退按钮不可用

通过PowerBuilder中ole对象Insert Object工具,在w_main窗口中插入Microsoft Web

Browse控件,命名为ole_ie。(如图2)

图2

在按钮cd_navigate的Clicked事件下增加代码:

String ls_url

Ls_url = sle_

Ole_te(ls_url)

在按钮cd_forward的Clicked事件下增加代码:

Ole_ard()

在按钮cd_backward的Clicked事件下增加代码:

Ole_()

在图片p_exit的Clicked事件下增加代码:

Close(parent)

在ole_ie的titlechange事件下增加代码:

String ls_title

Ls_title = text

st_ = ls_title //设置页面的title显示值

在ole_ie的progresschange事件下增加代码:

Long ll_progressmax

Long ll_progress

ll_progressmax = progressmax

ll_progress = progress

hpb_ition = ll_maxposition //设置进度条的最大值

hpb_on = hpb_on + ll_progress //设置进度条的当前值

在ole_ie的DocumentComplete事件下增加代码:

Cd_d = true //使向前按钮可用

Cd_d = true //使退按钮可用

运行程序在地址栏中输入“”,点击“导航”按钮程序执行效果如图3

上述方法简单的实现了对Web浏览器的导航等控制,如需获得Web页面内部的数据或调用页面内部方法实现交互控制。首先需对网站或HTML页面进行分析,需明确Web页面浏览器在pb中访问是通过被定义为Document的对象交互实现的。可实现HTML页面的访问和Script页面的访问。

对HTML页面的访问:

HTML页面通常被划分为不同的Form,通过对Form的访问可获取其内部的一些属性等。

有两种访问方式:

1.直接名称引用

常规:在页面中定义Form的名称。如

使用:ole_名称

通过这种声明方式可访问获取到Form中的具体input等类型的控件Value。

2.间接引用

注意:页面中没有指定Form的名称时。

使用:通过数组方式引用,该方法的缺点是不能明确Form的具体作用。

ole_[0]

也可实现向页面赋值的操作。

使用举例:

ole_名称.页面控件名称.value = “测试”

对Script的访问方式:

访问script主要是调用其< script >……< /script >内部的方法接口实现交互的目的。

访问举例:

ole_on()

5. 结束语

本文就PowerBuilder如何对浏览器控件实现调用和控制进行了阐述,在实际软件系统中使用这些方法起到了很明显的作用。这样为实现CS与BS结合的软件系统提供实现方案。

参考文献

[1] [美]Simon J.A. Herbert等著,张宝玲 等译,董启雄 等校[M].PowerBuilder7.0实用全书(第三版).北京:电子工业出版社,2000。

[2] [美]穆西亚诺,肯尼迪著,张洪涛,邢璐译,HTML&xHTML权威指南(第六版),清华大学出版社

本文标签: 实现浏览器页面控制增加