gpt4 book ai didi

c# - 在 Cefsharp 浏览器中避免 Js Alert 问题

转载 作者:太空狗 更新时间:2023-10-30 00:38:22 28 4
gpt4 key购买 nike

我试图避免页面上的 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 事件。但随后浏览器变白并卡住并试图找到解决方法但在线可用的方法不多..

有什么建议吗?

最佳答案

在处理程序的 OnJSDialog 方法中,确保在回调中调用 Continue(...):

public bool OnJSDialog(IWebBrowser browserControl, IBrowser browser, string originUrl, CefJsDialogType dialogType, string messageText, string defaultPromptText, IJsDialogCallback callback, ref bool suppressMessage) {
callback.Continue(true);
return true;
}

关于c# - 在 Cefsharp 浏览器中避免 Js Alert 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41748935/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com