zoukankan      html  css  js  c++  java
  • 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); 
     
    qq:673890989欢迎遇到同样问题的伙伴们交流
  • 相关阅读:
    dynamic debug动态打印
    leetcode:Pascal's Triangle II (杨辉三角形,空间限制)【面试算法题】
    HDU 1671 Phone List 二叉树水题 数组建树法
    栈和队列
    一张图理解O(1)算法
    uva 10608
    C# 写的工作任务 Job 定时调度框架 WebWork (Quartz.NET) Web版的Windows服务
    PHP伪造referer突破防盗链
    php 文件上传一例简单代码
    PHP 图片文件上传代码
  • 原文地址:https://www.cnblogs.com/CQ-LQJ/p/5165329.html
Copyright © 2011-2022 走看看