zoukankan      html  css  js  c++  java
  • .NET WebKitBrowser组件NewWindowCreated事件,新打开窗口获取Url

    一、获取思路。
    1、直接在NewWindowCreated事件中是没办法拿到Url连接的(这个好像是组件的BUG),在NewWindowRequest事件中也没办法拿到Url。这两个时间中的Url都是空值。
    2、所以,需要做一些思维转化。NewWindowCreated事件的NewWindowCreatedEventArgs参数会返回一个新的WebKitBrowser,虽然拿不到Url,但是将这个组件add到我们的form内,是会触发这个新WebKitBrowser的Navigating事件,并且打开新窗口的Url。所以在时间中的新WebKitBrowser,定义Navigating,然后在Navigating中就可以获取到Url了。
    二、具体源码。

    WebKit.WebKitBrowser browser = new WebKitBrowser();
    browser.NewWindowCreated += new NewWindowCreatedEventHandler((o, ne) =>
    {
         ne.WebKitBrowser.Navigating += new WebBrowserNavigatingEventHandler((ox, neax) =>
         {
               this.Controls.Remove(ne.WebKitBrowser);
               if (neax.Url != null && !String.IsNullOrWhiteSpace(neax.Url.ToString()))
               {
                    var str = browser.StringByEvaluatingJavaScriptFromString("document.getElementsByTagName('iframe')[0] ? document.getElementsByTagName('iframe')[0].src='" + neax.Url.ToString() + "' : ''");
               }
         });
         this.Controls.Add(ne.WebKitBrowser);
    });
    

      

  • 相关阅读:
    多线程(一)
    Interface
    Abstract
    面向对象
    字符串比对(10分)
    快递费用计算(7分)
    练习7-8 方阵循环右移 (20分)
    习题4-11 兔子繁衍问题 (15分)
    一道题理解穷举/贪心/爬山/遗传/退火/蚁群算法
    华为暑期测试实习生面经(2020.06)
  • 原文地址:https://www.cnblogs.com/elysian/p/14713087.html
Copyright © 2011-2022 走看看