[Winform]Cefsharp重写alert与confirm弹窗
来源:互联网 发布:做效果图的软件 编辑:程序博客网 时间:2024/06/05 16:06
摘要
在使用winform内嵌cefsharp浏览本地页面的时候,如果出现alert弹窗,会在标题栏显示页面所在目录。所以想起来重写alert的样式,通过winform的MessageBox进行提示。
解决办法
这里有必要提一下,使用的cefsharp版本,因为不同的版本,参数有所变化。
cefsharp:57.0.0.0
添加类JsDialogHandler,实现接口CefSharp.IJsDialogHandler
class JsDialogHandler : CefSharp.IJsDialogHandler { public void OnDialogClosed(CefSharp.IWebBrowser browserControl, CefSharp.IBrowser browser) { } public bool OnJSBeforeUnload(CefSharp.IWebBrowser browserControl, CefSharp.IBrowser browser, string message,
bool isReload, CefSharp.IJsDialogCallback callback) { return true; } public bool OnJSDialog(CefSharp.IWebBrowser browserControl, CefSharp.IBrowser browser,
string originUrl, CefSharp.CefJsDialogType dialogType, string messageText, string defaultPromptText,
CefSharp.IJsDialogCallback callback, ref bool suppressMessage) { switch (dialogType) { case CefSharp.CefJsDialogType.Alert: MessageBox.Show(messageText, "提示"); suppressMessage = true; return false; case CefSharp.CefJsDialogType.Confirm: var dr = MessageBox.Show(messageText, "提示", MessageBoxButtons.YesNo); if (dr == DialogResult.Yes) { callback.Continue(true, string.Empty); suppressMessage = false; return true; } else { callback.Continue(false, string.Empty); suppressMessage = false; return true; } break; case CefSharp.CefJsDialogType.Prompt: MessageBox.Show("系统不支持prompt形式的提示框", "提示"); break; default: break; } return false; } public void OnResetDialogState(CefSharp.IWebBrowser browserControl, CefSharp.IBrowser browser) { } }
初始化browser时,将自定义的弹窗注册上
_browser = new CefSharp.WinForms.ChromiumWebBrowser(url) { BrowserSettings = { DefaultEncoding = "UTF-8" }, MenuHandler = new MenuHandler(), LifeSpanHandler = new OpenPageSelf(), JsDialogHandler = new JsDialogHandler(), Dock = DockStyle.Fill, };
测试
总结
之前通过js调用c#方法实现,结果不太满意,发现如果程序全屏遮盖任务的情况下,弹框只会出现在任务栏,而不会在页面上显示。造成阻塞,在页面上无法做其他的操作。
阅读全文
0 0
- [Winform]Cefsharp重写alert与confirm弹窗
- 重写alert、confirm
- webview alert confirm 重写
- 重写alert和confirm
- 重写alert,重写messgae,重写confirm
- alert,confirm弹出框重写
- 重写alert,confirm 提示框样式
- Promise重写confirm,alert弹出框 .then()
- jquery-confirm应用 alert confirm 弹出 弹窗
- js 重写 bootstrap 样式 alert/confirm 消息窗口 - cnhxz
- js 重写 bootstrap 样式 alert/confirm 消息窗口
- alert() confirm() prompt() 之用法与区别
- 重写jquery.confirm.js 摆脱传统alert confirm 插件供下载(一)
- 重写jquery.confirm.js 摆脱传统alert confirm 插件供下载(二)
- 重写jquery.confirm.js 摆脱传统alert confirm 插件供下载(三)
- 重写jquery.confirm.js 摆脱传统alert confirm 插件供下载(四)
- iOS拦截webView的Alert与Confirm并让地址不显示,iOS隐藏(或重写)webView弹出提示的title,http:xxx.xx
- js中confirm()与alert()方法用法与区别
- 三个实例演示 Java Thread Dump 日志分析
- hive 中的map join 操作
- border标签造成的不良后果
- 51nod 1042 数字0-9的数量 数位DP
- LeetCode-4. Median of Two Sorted Arrays
- [Winform]Cefsharp重写alert与confirm弹窗
- 手把手教你Android手机与BLE终端通信--连接,发送和接收数据
- 深入理解Java的Annotation系列-第三部分 解析注解信息
- 【ELK Stack】ELK+KafKa开发集群环境搭建
- Java包命名规则引发的思考
- google 网上文档
- java的类加载机制以及加载模型
- TCP的三次握手与四次挥手
- photoview