准备工作
1. 新增一个Application应用,新增一个窗口。
2. 在窗口中新增一个OLE控件:Microsoft Web Browser,命名为old_1。
3. 新增一个TextBox网址输入控件,命名为sle_url,初始值为c:\temp\index.html。
4. 新增一个Button控件,命名为cb_go,clicked代码如下:

ole_1.object.Navigate(sle_url.text)

5. 新增文件c:\temp\index.html,内容如下:

<script language="javascript">
function sayhello(msg)
{
alert(msg);
}
</script> This is a PowerBuilder test page.<br /> Your name: <span id="user_name">Ultra Man</span><br /> <a id="say_hello" onclick="javascript:sayhello('I am web browser');">Say Hello</a><br /> <a id="www_link" href="http://192.168.14.155">http://192.168.14.155</a><br />

PB如何调用网页中的脚本?
1. 在窗口中新增一个Button按钮:Invoke Javascript,代码如下:

ole_1.object.document.parentWindow.sayhello("1122")

2. 注意这里的大小写问题。JS区分大小写,PB不区分大小写,PB调用时将函数全部转化成了小写。假设JS中的函数是sayHello(),PB调用方式原则上应该也是sayHello(),但PB实际上在执行时转换成了全部小写sayhello(),这样JS在实际执行时就找不到sayhello()这个函数。所以,要想在PB中调用的JS函数应该全部都用小写作为函数名。

PB如何获取网页元素?
1. 在窗口中新增一个Button按钮:Fetch User Name,代码如下:

messagebox('', string(ole_1.object.Document.GetElementById("user_name").InnerText))

PB如何修改网页元素的属性?
1. 在窗口中新增一个Button按钮:Change User Name,代码如下:

ole_1.object.Document.GetElementById("user_name").InnerText = 'Super Man'

PB如何调用网页元素的事件?
1. 在窗口中新增一个Button按钮:Click Link,代码如下:

ole_1.object.Document.GetElementById("say_hello").Click()

PB如何响应网页中的Click事件?
1. 在ole_1的clicked事件中写入如下代码:

string ls_tagName, ls_id, ls_href

ls_tagName=ole_1.object.document.activeElement.tagName

if upper(trim(ls_tagName))="A" then
ls_id = ole_1.object.document.activeElement.id
ls_href =ole_1.object.Document.activeElement.href messagebox('', ls_tagName + '/' + ls_id + '/' + ls_href) ole_1.object.Navigate(ls_href)
end if

2. 当在网页中点击链接时,事件处理就会传到ole_1.clicked。

参考资料:
1. http://hi.baidu.com/starvv_w/blog/item/6264f7a23fef60b9caefd067.html
2. http://apps.hi.baidu.com/share/detail/2832257

PowerBuilder与嵌入浏览器交互的更多相关文章

  1. 在WPF中使用CefSharp嵌入浏览器

    日常开发中,我们需要将一些Web页面嵌入到桌面客户端软件中.下面我们使用CefSharp嵌入浏览器来实现. 首先先介绍一下CefSharp嵌入式浏览器,它是基于Google浏览器的一个组件,我们可以在 ...

  2. 在WPF中使用CefSharp嵌入浏览器(转)

    在WPF中使用CefSharp嵌入浏览器   日常开发中,我们需要将一些Web页面嵌入到桌面客户端软件中.下面我们使用CefSharp嵌入浏览器来实现. 首先先介绍一下CefSharp嵌入式浏览器,它 ...

  3. 一步一步学Silverlight 2系列(24):与浏览器交互相关辅助方法

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  4. Java-Swing嵌入浏览器(一)

    今天要说的额是浏览器的第一个版本是用DJnative-swt和swt包开发的调用本地浏览器和webkit浏览器的示例 这是我的工程目录[源码见最后]: src下为写的源码,lib为引入的swt和DJn ...

  5. Java-Swing嵌入浏览器(二)

    这是qtjambi利用webview来做嵌入式浏览器,下面是我的工程目录. 运行效果如下图: 代码相关: package qtBowers; import com.trolltech.qt.core. ...

  6. swing 嵌入浏览器

    需求要在swing加一个浏览器,在网上找了一个挺方便的方法,现在把代码贴上来 力求方便. package com.vtradex.page.shipment; import static javafx ...

  7. Android WebView-应用内嵌入浏览器

    移动应用开发,web app.Native app的讨论已经很久了,纯粹的web app还很少,多少能见到Native + web混合的app,混合的app是在Native app中写一个浏览器加载 ...

  8. 在winform中使用cefsharp.winform嵌入浏览器(含视频教程)

    免费视频教程和源码: https://www.bilibili.com/video/av84573813/ 1. 开始使用CefSharp在Winform中嵌入网页 2. 解决重复打开Cefsharp ...

  9. 利用MFC实现浏览器的定制与扩展(JavaScript与C++交互)

    原文地址:http://www.vckbase.com/document/viewdoc/?id=1486 浏览器的定制与扩展       作者:李汉鹏 下载源代 码  本文分如下章节: 前 言 在 ...

随机推荐

  1. 洛谷 P3233 [HNOI2014]世界树(虚树+dp)

    题面 luogu 题解 数据范围已经告诉我们是虚树了,考虑如何在虚树上面\(dp\) 以下摘自hzwer博客: 构建虚树以后两遍dp处理出虚树上每个点最近的议事处 然后枚举虚树上每一条边,考虑其对两端 ...

  2. 江西理工大学南昌校区排名赛 D: 单身狗的物理游戏

    题目描述 萌樱花是一只单身狗. 萌樱花今天决定做一道理综物理题: 如图,两固定的绝缘斜面倾角均为θ,上沿相连.两细金属棒ab(仅标出a端)和cd(仅标出c端)长度均为L,质量分别为2m和m:用两根不可 ...

  3. UVA - 10589 构造最优化函数 DP好题

    题意:给定一个图,节点可以放灯,要求用最少的灯覆盖所有的边(每盏灯能覆盖该节点邻接的边),满足条件的同时求该前提下尽量多的被两盏灯照亮的边数 条件二转化为求尽量少的被一盏灯照亮的边数,两个条件都是求m ...

  4. Oracle 11g 新特性 --SQL Plan Management 说明

    Oracle 11g 新特性 --SQL Plan Management 说明 参见大神博主文章: http://blog.csdn.net/tianlesoftware/article/detail ...

  5. firewall-cmd --reload 防火墙

    防火墙重新加载配置firewall-cmd --reload 查看开放的端口 firewall-cmd --list-ports nano /etc/sysconfig/iptables -A IN_ ...

  6. vue工程中使用iconfont在线CDN不生效的问题

    为什么在vue工程中引入iconfont有时候不生效呢? 请依次使用以下方法 1. 在index.html中引入在线资源 <!DOCTYPE html> <html lang=&qu ...

  7. app测试中,ios和android的区别

    App测试中ios和Android的区别: 1. Android长按home键呼出应用列表和切换应用,然后右滑则终止应用: 2. 多分辨率测试,Android端20多种,ios较少: 3. 手机操作系 ...

  8. python 学习笔记一——Python安装和IDLE使用

    好吧,一直准备学点啥,前些日子也下好了一些python电子书,但之后又没影了.年龄大了,就是不爱学习了.那就现在开始吧. 安装python 3 Mac OS X会预装python 2,Linux的大多 ...

  9. pl/sql过期问题解决

    第一步: 输入cmd进入命令窗口 命令窗口中输入 regedit HKEY_CURRENT_USER\Software\Allround Automations 删除Allround Automati ...

  10. Rsa2加密报错java.security.spec.InvalidKeySpecException的解决办法

    最近在和支付宝支付做个对接,Java项目中用到了RSA2进行加解密,在加密过程中遇到了错误: java.security.spec.InvalidKeySpecException: java.secu ...