FBrowserCEF3Lib浏览器开发技术交流网址

 找回密码
 立即注册
查看: 3002|回复: 1

CEF3专辑-进阶篇-03-自定义弹窗

[复制链接]

签到天数: 32 天

[LV.5]常住居民I

10

主题

34

回帖

554

积分

中级会员LV1

太阳月亮月亮星星

积分
554
发表于 2025-1-17 15:27:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 KenTien 于 2025-3-11 08:27 编辑

一、  使用浏览器默认的关闭提示框
[JavaScript] 查看源码 复制代码
// 前端 JS 代码
window.onbeforeunload = function(){
    return "这里的提示文案,无论你写啥,都不会显示,只会显示Chrome浏览器内置的提示"}

二、使用自定义的关闭提示框,如果不处理。那也是弹窗
[C++] 查看源码 复制代码
class Client
    : public CefClient
    , public CefJSDialogHandler {
public:
    // CefClient methods:
    CefRefPtr<CefJSDialogHandler> GetJSDialogHandler() override { return this; }

    // CefJSDialogHandler methods:
   virtual bool OnBeforeUnloadDialog(
        CefRefPtr<CefBrowser> browser,
        const CefString& message_text,
        bool is_reload,
        CefRefPtr<CefJSDialogCallback> callback) override {

        HWND hwnd = browser->GetHost()->GetWindowHandle();
        int msgboxID = MessageBox(hwnd, L"您编辑的内容尚未保存.\n确定要关闭窗口吗?", L"系统提示", MB_OKCANCEL);
        if (msgboxID == IDOK) {
        // 继续执行
            callback->Continue(true, CefString());
        } else {
            callback->Continue(false, CefString());
        }
        return true;
};





签到天数: 5 天

[LV.2]偶尔看看I

0

主题

42

回帖

264

积分

初级会员LV5

太阳月亮星星星星

积分
264
发表于 2025-2-7 13:05:22 | 显示全部楼层
谢谢大佬分享,学到了很多
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们 在线手册 视频教程 赞助支持 CEF官网 易语言官网 火山开发官网
拒绝任何人以任何形式在本网站发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表本网站立场!

网址帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!

Archiver| 手机版| 小黑屋| 联系QQ:283987887 劰载中...

Powered by Discuz! X5.0 GMT+8, 2026-9-17 07:14 , Processed in 0.021908 second(s), 12 queries , Redis On.

 川公网安备51090302000262 蜀ICP备2023034329号
快速回复 返回顶部 返回列表