【发布时间】:2017-01-19 18:17:30
【问题描述】:
我试图避免页面上的 js 警报,因为它会中断流程并且浏览器会卡在该页面上,直到单击弹出窗口为止。
我添加了示例中的类:
public class JsDialogHandler : IJsDialogHandler
{
public bool OnJSDialog(IWebBrowser browserControl, IBrowser browser, string originUrl, CefJsDialogType dialogType, string messageText, string defaultPromptText, IJsDialogCallback callback, ref bool suppressMessage)
{
return true;
}
public bool OnJSBeforeUnload(IWebBrowser browserControl, IBrowser browser, string message, bool isReload, IJsDialogCallback callback)
{
return true;
}
public void OnResetDialogState(IWebBrowser browserControl, IBrowser browser)
{
}
public void OnDialogClosed(IWebBrowser browserControl, IBrowser browser)
{
}
}
我将 Chromium 浏览器指定为:
CefSharp.Cef.Initialize(new CefSharp.CefSettings());
browser = new CefSharp.WinForms.ChromiumWebBrowser(CustomLinks[0].ToString());
JsDialogHandler jss = new JsDialogHandler();
browser.JsDialogHandler = jss;
问题是当警报应该显示它确实运行OnJSDialog 事件时。但随后浏览器变白,卡住并试图找到解决方法,但在线可用的内容不多..
有什么建议吗?
【问题讨论】:
-
您需要执行
callback,请阅读xml doc获取说明。 -
@amaitland 你能发一下链接吗?
-
只需导航到 Visual Studio 中的方法并阅读文档