• 黄聪: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 

  • 相关阅读:
    code review
    自我封闭
    怎么验证?
    DRUPAL点滴
    CRLF CSRF XSS
    各种element/format 在manage display 下的选项
    html list <==> unformatted list
    ctrl + d 在phpstorm 和 eclipse 中的不同含义
    常量和变量的区别
    JSON和php里的数据序列化
  • 原文地址:https://www.cnblogs.com/huangcong/p/8044472.html
Copyright © 2020-2023  润新知