首页 > 代码库 > C# webBrowser控件禁用alert,confirm之类的弹窗解决方案
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
C# webBrowser控件禁用alert,confirm之类的弹窗解决方案
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。