C# webBrowser控件禁用alert,confirm之类的弹窗解决方案

同样的代码,我尝试了很多次都没有成功。最后终于成功了,是因为我没有在正确的事件里面调用这段代码。

    private void InjectAlertBlocker()
        {
            HtmlElement head = wbNav.Document.GetElementsByTagName("head")[0];
            HtmlElement scriptEl = wbNav.Document.CreateElement("script");
            mshtml.IHTMLScriptElement element = (mshtml.IHTMLScriptElement)scriptEl.DomElement;
            string alertBlocker = "window.alert = function () { }";
            element.text = alertBlocker;
            head.AppendChild(scriptEl);
            wbNav.ScriptErrorsSuppressed = true;
        }
//阻止弹出新窗口
        private void wbNav_NewWindow(object sender, CancelEventArgs e)
        {
            e.Cancel = true;
        }
    //必须要在这个事件里面调用才能禁用,之前一直写在别的事件里面,浪费了2小时。
        private void wbNav_Navigated(object sender, WebBrowserNavigatedEventArgs e)
        {
            InjectAlertBlocker();
        }

为了加深印象,特别记录一下。

BTW,别忘记添加 mshtml.dll 这个组件。 全称:microsoft html object library

时间: 2024-10-04 20:22:32

C# webBrowser控件禁用alert,confirm之类的弹窗解决方案的相关文章

如何禁用 WebBrowser 控件缩放和左右移动

我认为有两种方法可以实现. 1, WebBrowser 是基于IE 9的,所以WebBrowser 也是支持最新的HTML5标准.然而在HTML中有许多控件是通过Browser的 pan 和zoom等手持行为起作 用的,您可以设置HTML中的 viewport metadata 元素来实现.如:将下面的HTML代码加入到您的HTML文件头上. <meta name="viewport" content="user-scalable=no" /> 2, W

C# WebBrowser控件使用整理

一.简介 WebBrowser 控件为 WebBrowser ActiveX 控件提供了托管包装. 托管包装使您可以在 Windows 窗体客户端应用程序中显示网页. 使用WebBrowser 控件,可以复制应用程序中的 Internet Explorer Web 浏览功能,还可以禁用默认的 Internet Explorer 功能,并将该控件用作简单的 HTML 文档查看器. 此外,可以使用该控件将基于 DHTML 的用户界面元素添加到窗体中,还可以隐瞒这些元素在 WebBrowser 控件中

C# WebBrowser控件详解

 作者:827969653     0.常用方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(string urlString, string targetFrameName, byte[] postData, string additionalHeaders): 浏览urlString表示的网址,并发送postData中的消息 //(通常我们登录一个网站的时候就

C#中的WebBrowser控件的使用

0.常用方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(string urlString, string targetFrameName, byte[] postData, string additionalHeaders): 浏览urlString表示的网址,并发送postData中的消息 //(通常我们登录一个网站的时候就会把用户名和密码作为postData

C#WebBrowser控件使用教程与技巧收集

常用属性和方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(string urlString, string targetFrameName, byte[] postData, string additionalHeaders): 浏览urlString表示的网址,并发送postData中的消息//(通常我们登录一个网站的时候就会把用户名和密码作为postData

C#WebBrowser控件使用教程与技巧

获取非input控件的值 webBrowser1.Document.All["控件ID"].InnerText;或webBrowser1.Document.GetElementById("控件ID").InnerText; 或webBrowser1.Document.GetElementById("控件ID").GetAttribute("value"); 获取input控件的值 webBrowser1.Document.Al

WebBrowser控件的使用

说明:要实现线程同步不止这一种方式.在这里采用了事件,在事件处理程序里中止了线程(主要是回答csdn论坛的一个朋友的问题才用了这种办法). 建了一个QQ技术交流群 C#..Net技术交流群 242497960  欢迎大家加入点击链接加入群[C#..Net技术交流群]:http://jq.qq.com/?_wv=1027&k=ON45Ii 0.常用方法 Navigate(string urlString):浏览urlString表示的网址Navigate(System.Uri url):浏览url

Delphi WebBrowser控件的使用(大全 good)

Delphi WebBrowser控件的使用 WebBrowser控件属性:1.Application      如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch).如果在宿主对象中自动化对象无效,程序将返回WebBrowser控件的自动化对象2.Parent       返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口3.Containe       返回WebBrowser控件容器的自动化对象.通常该值与Pare

winform WebBrowser控件中,cs后台代码执行动态生成的js

很多文章都是好介绍C# 后台cs和js如何交互,cs调用js方法(js方法必须是页面上存在的,已经定义好的),js调用cs方法, 但如果想用cs里面执行动态生成的js代码,如何实现呢? 思路大致是这样的,cs动态插入js到html上,cs执行html插入的js方法代码. 封装好的方法: /// <summary> /// webbrowser执行脚本 /// </summary> /// <param name="web">传入WebBrowser