1. 背景
WebBrowser控件在加载页面时,可能会弹出各种Alert、Confirm弹窗。点击弹窗中的确定按钮之后,页面才能正常的加载出来。这样的交互效果繁琐,用户使用起来极其不友好,甚至恶心。
2. 解决方案:
1. 添加引用: mshtml.dll(全称:microsoft html object library)
2 .为WebBrowser添加事件
private void WebView_Navigated(object sender, WebBrowserNavigatedEventArgs e) { InjectAlertBlocker(); }
private void InjectAlertBlocker()
{
HtmlElement head = webView.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = webView.Document.CreateElement("script");
mshtml.IHTMLScriptElement element = (mshtml.IHTMLScriptElement)scriptEl.DomElement;
string alertBlocker = "window.alert = function () { }";
element.text = alertBlocker;
head.AppendChild(scriptEl);
webView.ScriptErrorsSuppressed = true;
}