打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
2015.2.16 关于delphi web控件打开新网页时弹出关闭页面(js代码)出错的解决办法研究

参考网址1:http://www.csharpwin.com/csharpspace/2360.shtml
...参考网址2:http://www.oschina.net/question/234345_53939
网址1、2都是c语言中对于web控件的解决办法,对于两者我都只是借鉴了一下方法,最终都只是对网页中js代码中的widow.open和window.close进行处理。

大概有两种方法:
一种对js代码进行替换,换成web控件可执行不出错的程序,
另一种是对于web控件在执行js代码widow.open后,进行事件判定....

下面最终我采用第二种方法对其进行解决,但是我这里只对window.open进行处理,并没有对window.close进行处理,后面如果有机会会对程序进行进一步的完善....

最终参考网址:http://www.360doc.com/content/12/1109/11/7389824_246775000.shtml

解决办法的程序:
procedure TForm1.WebBrowserNewWindow2(Sender: TObject;

  var ppDisp: IDispatch; var Cancel: WordBool);
begin
  WebBrowser.RegisterAsBrowser := true;//当前浏览器为最高级别浏览器
  ppDisp := WebBrowser.ControlInterface;//新窗口对象允许web浏览器操作
end;

程序说明:
首先选建立一个web控件,然后使用web控件的onnewwindow事件,再将web控件的RegisterAsBrowser 属性设为真,使得事件的ppDisp参数等于web控件ControlInterface属性。
onnewwindow事件是响应一个导航到新网址或一个脚本的window.open方法;

ppDisp为程序创建新窗口的对象;

RegisterAsBrowser属性
设置该属性为True时,当前使用的Web浏览器组件成为最高级别浏览器。
语法:
property RegisterAsBrowser: WordBool;
 
ControlInterface属性
访问WebBrowser组件接口,这个接口允许一个Automation控制器访问Web浏览器的属性、方法和事件。
语法:
property ControlInterface: IWebBrowser2;
示例:
显示WebBrowser1组件的名称,代码如下:
Showmessage(WebBrowser1.ControlInterface.Name); 
 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VB关于webbrowser相关操作大全
js控件状态和属性
自己动手写工具:自动点击小插件
Delphi中WebBrowser判断页面及JS是否加载完成
如何:创建 C# Windows 窗体应用程序
Excel中“集成”背景音乐全攻略 >>
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服