cefsharp重写默认js弹窗(alert/confirm/prompt)
程序员文章站
2022-04-05 15:15:04
...
1.设置js弹窗控制器
webView.JsDialogHandler = this; //js弹窗控制
this表示本类对象,所以本类要实现IJsDialogHandler接口
2.实现IJsDialogHandler接口接口方法
public bool OnJSAlert(IWebBrowser browser, string url, string message)
{
MessageBox.Show(message);
return true; //阻止js弹
}
public unsafe bool OnJSConfirm(IWebBrowser browser, string url, string message, bool* retval)
{
DialogResult result = MessageBox.Show(message, "提示", MessageBoxButtons.YesNo);
bool value = result == DialogResult.Yes ? true : false;
// retval = (bool *)GCHandle.Alloc(value).AddrOfPinnedObject().ToPointer(); //获取托管内存地址,异常
// retval = &value; //改变指针失败
*retval = value;
return true;
}
public unsafe bool OnJSPrompt(IWebBrowser browser, string url, string message, string defaultValue, bool* retval, ref string result)
{
//交互消息
string r = string.Empty;
this.Invoke(new Action(() =>
{
r = Microsoft.VisualBasic.Interaction.InputBox(message, "提示", defaultValue);
}));
result = r;
if (result == defaultValue)
{
*retval = false;
}
else
{
*retval = true;
}
return true;
}
更多专业前端知识,请上【猿2048】www.mk2048.com
上一篇: ps格式怎么转jpg格式?
下一篇: php缓存有哪些