• C#webbrowser控件技巧(取得javascript变量值,禁止显示脚本错误)


    C#中的webbrowser控件比较好用. 下面本人搜索整理的几个小技巧.

    1. 从C#中取得javascript的变量值.

    using mshtml;
    using System.Reflection;

                IHTMLDocument2 vDocument = webBrowser1.Document.DomDocument as IHTMLDocument2;
                IHTMLWindow2 vWindow = vDocument.parentWindow;
                Type vWindowType = vWindow.GetType();
                object xpt = vWindowType.InvokeMember("_xpt", BindingFlags.GetProperty, null, vWindow, new object[] { });

    xpt 就是取得的javascript中的变量"_xpt"的值.

    2. 禁止显示脚本错误窗口.

    webBrowser1.ScriptErrorsSuppressed = true;

    3. 如何取弹出网页的网址

     string newUrl = webBrowser_temp.Document.ActiveElement.GetAttribute("href");

    4. 禁止打开新窗口, 在本窗口打开.

    4.1 设置属性.

    void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {   
     //将所有的链接的目标,指向本窗体   
     foreach (HtmlElement archor in this.webBrowser1.Document.Links)   
     {  
      archor.SetAttribute("target", "_self");   
     }   
     //将所有的FORM的提交目标,指向本窗体   
     foreach (HtmlElement form in this.webBrowser1.Document.Forms)
     {       
      form.SetAttribute("target", "_self");   
     }
    }
    将 WebBrowser 的 AllowWebBrowserDrop 设为 false
    将 WebBrowser 的 WebBrowserShortcutsEnabled 设为 false
    将 WebBrowser 的 IsWebBrowserContextMenuEnabled 设为 false

    这种方法对于javascript打开的链接无效.

    4.2 拦截新窗口, 在另一个webbrowser控件打开.

    private void webBrowser_1_NewWindow(object sender, CancelEventArgs e)
    {              
     WebBrowser webBrowser_temp = (WebBrowser)sender;  
     string newUrl = webBrowser_temp.Document.ActiveElement.GetAttribute("href");
     webBrowser_1.Url = new Uri(newUrl);
     e.Cancel = true; 
    }   

  • 相关阅读:
    Python 多线程与多进程
    Python3 Scrapy 安装方法
    吴恩达深度学习笔记 course4 week4 测验
    吴恩达深度学习笔记 course4 week 4 特殊应用:人脸识别与神经风格转换
    吴恩达深度学习笔记 course4 week3 测验
    吴恩达深度学习笔记 course4 week1 作业2
    吴恩达深度学习笔记 course4 week3 目标检测
    吴恩达深度学习笔记 course4 week2 作业1
    吴恩达深度学习笔记 course4 week2 测验
    DreamWeaver使用小结
  • 原文地址:https://www.cnblogs.com/danyueweb/p/3340814.html
Copyright © 2020-2023  润新知