PB ole Web浏览器控件

PB ole Web浏览器控件  

PB中使用Microsoft Web Browser控件步骤:

在pb的某窗口中加入OLE对象,选择Insert control(插入控件),然后选中"Microsoft WEB 浏览器",(随系统而定的版本),就可以在这个窗口直接使用IE浏览器控件了。

常用函数:(对这个ole控件取名叫ole_web)
ole_web.object.navigate(string ls_url) file://浏览某url,

    譬如:ole_web.object.navigate('http://liulee.myrice.com') 就是浏览 http://liulee.myrice.com 页面,当然支持本地文件,也支持本地图片文件的浏览,如jpeg,jpg,gif,png等等,如果是不支持的文件,则直接弹出选择打开文件对话框,和ie一模一样。
ole_web.object.goback() file://回退(如果没有内容可退,则会弹出错误,可以屏蔽该错误)
ole_web.object.goforward() file://前进,同上
常用事件:
documentcomplete : url请求的页面完成;
downloadcomplete:url中请求的下载完成;

常用属性:
ole_web.object.width :pixel高度,需要转换为pbunit高度才可以调整
ole_web.object.height:同上
ole_web.object.offline:离线方式,true,false两者之一


-----------------------------------------------------------------------------------------------------

打开某个网页: 
ole_1.object.Navigate("http://www.sound-net.com", '', '', '', '') 
当然如果你要做更加复杂的工作,这些是不够的 
--------------------------------------------------------------- 
如果你对javascript,dhtml熟悉的话,对下边很容易理解: 
通过pb中的browser 可以看到浏览器控件中有个对象ole_1.object.document.相当于网页中的document对象,由此可以在pb中得到和操纵许多document的属性,甚至还可以利用Document.parentWindow得到一些window对象的属性, 
例如: 
ole_1.object.Document.parentwindows.image2.value 
如果要触发某个控件(id 为image4)的click事件 
ole_1.object.Document.parentwindows.image4.click() 
ole_1.object.document.forms.length 来得到有几个form 
ole_1.object.document.forms[0].name  得到名称 
ole_1.object.document.forms[0].submit() 根据名称提交 
ole_1.object.document.forms[i].Submit.click() 
遍历font的tag: 
oleobject ole_all,ole_font 
ole_all=  ole_1.object.document.body.all 
ole_font =ole_all.tags("FONT") 
messagebox("",integer(ole_font.length)) 
改变网页背景色: 
ole_1.object.Document.body.background="" 
ole_1.object.Document.body.bgcolor=rgb(rand(255),rand(255),rand(255)) 
得到网页源码 
ls = ole_1.object.document.documentElement.outerHTML 
前进,后退: 
ole_1.object.GoBack() 
ole_1.object.GoForward() 
或者: 
ole_1.object.document.parentWindow.history.back() 
ole_1.object.document.parentWindow.history.forward() 
怎么相应点击网页的事件? 
在clicked事件中加入: 
ls_tagName=ole_1.object.document.activeElement.tagName 
if upper(trim(ls_tagName))="A" then  //同理可以对INPUT等响应 
ls_name = ole_1.object.document.activeElement.id 
ls_a=ole_1.object.Document.activeElement.href 
//然后在这里根据链接的id或者href choosecase 
CHOOSE CASE ls_name 
CASE "A_test" 
//do something 
   END CHOOSE 
end if 
怎么查找网页中document对象属性? 
   
最好的办法就是用我们的pb8,新建web target,加入并且打开一个网页,在左边tab页选中page-〉client side,从树中就可以查到网页中document对象的属性方法,直接copy下来修改修改就可以用了。

 

//===================================================================

百度: 
输入搜索 
ole_webBrowser.object.document.getElementByIdx_x("kw").InnerText ="youzhi1007" 
点击按钮 
ole_webBrowser.object.document.getElementByIdx_x("sb").click 
google 
ole_webBrowser.object.Document.GetElementsByName("q").item(0).SetAttribute("value", "youzhi1007") 
ole_webBrowser.object.Document.GetElementsByname("btnG").item(0).click


......................................................


PB中的INET控件的使用 

INET控件可以模拟向INTERNET以GET或POST形式发送请求,并且可能得到请求返回的页面内容,它需要与INTERRNETESULT控件使用.这两个控件都是不可视的,帮助文件写得并不很详细,正确使用这两个控件需要先对这两个控件派生两个标准类,再程序中再实例化使用.

NEW一个STANDARD CLASS,选择INET,保存成n_inet

NEW一个STANDARD CLASS,选择INTERNETRESULT,在INTERNETDATA函数中写上  messagebox('返回结果',string(data)),保存成n_ir

下面就试下,如下脚本

n_inet ln_inet

n_ir ln_ir

ln_inet = create n_inet

ln_ir = create n_ir

integer li_ret

li_ret = n_inet.geturl('http://www.china-puer.cn/list.asp?id=1450',ln_ir)

if li_ret <1 then messagebox('发生错误',string(li_ret))
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值