C++ 拦截 CEF 的JS 弹窗(Alert, Confirm),改造为C++的对话框

2023-05-16

本周主要进行了oa_web项目的统一对话框(提示框)进行改造。因为我们知道,对于嵌入到客户端的web页面,会使用JS弹出的alert,confirm 对话(提示)框, 不过这个提示框的样式是由浏览器决定的,不能够定制,结果展示出来按钮错位,整个风格与整个软件不统一,使得用户体验很差,客户端C++进行拦截嵌入其中的JS弹出的alert,confirm提示框,阻止JS弹出后,C++获取弹窗信息,进行统一得对话框显示或者提示,使得风格统一,界面友好。

但是要拦截CEF中的alert信息框,是个难点,不过,经过仔细的阅读与查找官方文档,发现了在CefJSDialogHandler中有一个函数 bool OnJSDialog()的函数,先来看一下官方关于这个函数是怎么声明的:

大概意思就是说,这个函数是调用JS 对话框前会先调用这个函数,如果想阻止JS调用自身的对话框,就返回true, 反之返回false.这里面包含JS对话框的信息,我们可以拿来自己去用我们统一得对话框进行展示,并阻止JS自身的对话框。这样就能实现我们将JS的对话框使用C++进行重构。

具体怎么做呢?

1.继承,我们首先让handler的类,继承CefJSDialogHandler类

2.声明,在handler类中声明一下方法(这个方法是CefJSDialogHandler的虚函数)

 

3.实现, 在 hander的.cpp函数里进行实现JS弹窗的拦截,与统一对话框的展示

这里面的StyledMessageBox :: showMessage是我们实现的静态方法显示一个对话框,注意,这个对话框肯定是模态的,要等到用户确认之后,才进行返回结果,然后,将JS的弹窗给禁止掉,就完成了。

 

然后写一个测试的JS代码(这里要感谢@ 老师进行的技术支持),。使用客户端进行加载。

点击web页面的按钮,测试结果如下。就完成了我们将JS的弹窗重写为C++的弹窗了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 拦截 CEF 的JS 弹窗(Alert, Confirm),改造为C++的对话框 的相关文章

  • 瑞芯微RV1126/1109开发流程之模型转换

    1 环境搭建 xff08 PC端ubuntu16 04搭建rknn环境 xff09 xff08 1 xff09 安装anaconda环境 xff08 为了便于管理自己的环境建议安装 xff0c 安装步骤请自行搜索 xff0c 本人安装ana
  • 瑞芯微RV1126/1109开发流程之驱动升级

    1 1126硬件参数读取 xff08 1 xff09 CPU温度读取 46300和47100分别代表46 3 47 1 xff08 2 xff09 查看1126的NPU xff08 3 xff09 查询NPU驱动版本 dmesg grep
  • 如何在 ubuntu 安装并配置Go?

    如何在 ubuntu 安装并配置Go xff1f 虽然安装和配置go很简单 xff0c 但是很多初学者在第一次安装go环境时会遇到各种坑 这篇博客完整演示一次如何在ubuntu上安装和配置golang 第一步 xff0c 查看系统版本 xf
  • 瑞芯微RV1126/1109开发流程之yolov5部署(c++版本)

    1 ubuntu上安装rv1126交叉编译工具链 方式一 xff1a xff08 1 xff09 下载交叉编译工具 交叉编译器概念 xff1a 交叉编译器可以使我们在主机上编译出可以在嵌入式设备上运行的程序 下载地址 xff1a Downl
  • 瑞芯微RV1126/1109开发流程之资料收藏

    RKMedia Firefly Wiki https blog csdn net u013171226 category 11410227 html目前该博主已经建立专栏 RV1109 RV1126系列 3 RV1109 1126 RKNN
  • 瑞芯微RV1126/1109开发流程之opencv交叉编译

    1 下载opencv并解压 这里的opencv版本是我一直用者的opencv3 4 0 没有opencv的可以到这里 xff08 https opencv org releases page 5 xff09 下载 2 创建build和ins
  • yolov5目标检测算法研究之参考资料

    CSP网络架构 深度学习之CSPNet分析 tt丫的博客 CSDN博客 cspnet结构 深度学习入门小菜鸟 xff0c 希望像做笔记记录自己学的东西 xff0c 也希望能帮助到同样入门的人 xff0c 更希望大佬们帮忙纠错啦 侵权立删 目
  • pytorch统计模型参数量并输出

    有时候需要统计我们自己构建的模型参数 与baseline的网络比较 统计神经网络模型参数 方式一 def get parameter number net total num 61 sum p numel for p in net para
  • TCP传输过程中,客户端异常退出导致服务端send函数崩溃

    在linux下编写TCP socket程序时 xff0c 如果客户端突然退出 xff0c 导致连接中断 xff0c 这个时候服务端如果继续调用send函数发送数据的话 xff0c 会导致整个进程退出 xff0c 这是我们不愿看到的 xff0
  • linux socket编程 close函数详解

    int close int fd close 函数存在于函数库unistd h函数库中 xff1b close 函数用于释放系统分配给套接字的资源 xff0c 该函数即文件操作中常用的close函数 参数fd为需要关闭的套接字文件描述符 x
  • 瑞芯微RV1126/1109开发流程之json交叉编译

    1 下载json源码 下载json源码地址https github com open source parsers jsoncpp https github com open source parsers jsoncpp 本次安装下载jso
  • 瑞芯微RV1126/1109开发流程之redis交叉编译

    1 下载redis源码 下载json源码地址 Releases redis redis GitHub 本次安装下载json版本为redis 5 0 10 tar gz 2 解压 下载下来后解压 tar zxvf redis 5 0 10 t
  • 瑞芯微RV1126/1109开发流程之JDK安装

    因本人在基于rv1126上开发的项目需要用到java xff0c 于是需要在该平台上安装JDK xff0c 在安装过程中遇到些错误 xff1b 边缘视频计算模组均是基于ARM开发的 xff0c 但是ARM的硬件架构类似CPU架构也分32位和
  • kvm GPU直通(kvm GPU passthrough)

    感兴趣的可以站内私信我或直接打开链接显卡虚拟化方案之GPU透传 三 实战篇 为了方便对服务器进行自动管理 我们需要对硬件进行虚拟化 对于显卡而言 Nvidia有专门支持GPU虚拟化的显卡 比如GRID GPU系列 以NVIDIA GRID
  • COCO评估输出指定某类AP或者输出每个类别AP结果

    一 输出单类AP 不需要修改pycocotools coco eval py源代码 34 34 34 COCO Style Evaluations 34 34 34 import json import os import argparse
  • 基于PaddlePaddle的工业表计数环境搭建

    为了验证百度PaddlePaddle发布的工业表计数工程模型的准确性以及效果 xff0c 分别在PC端和jetson端搭建了环境 xff0c 亲测实际效果 工业表计数 xff1a 工业表计读数 PaddleX 文档 链接中jetson na
  • 瑞芯微RV1126/1109开发流程之MPP部署

    本文根据RKNN交流群提供的MPP开源代码 xff0c 在RV1126上部署MPP demo xff0c MPP的GitHub地址为 xff1a GitHub rockchip linux mpp Media Process Platfor
  • ubuntu16.04挂载硬盘

    1 查看Linux硬盘信息 xff1a sudo fdisk l 2 格式化硬盘 xff08 根据需要确定文件系统 xff09 xff1a sudo mkfs xfs dev sdb 如果是挂在硬盘格式为ext4的话命令为 xff1a su
  • Opencv常用操作

    一 hwc转chw xff08 RGBRGBRGB 转RR GG BB xff09 include lt opencv2 highgui highgui hpp gt include lt opencv2 imgproc imgproc h
  • 使用xrdp在windows7下进行远程ubuntu的操作使用说明,多账户同时访问

    一 首先在ubuntu上安装xrdp 1 安装xrdp sudo apt get install xrdp 2 安装vnc4server 在第一步安装xrdp的时候已经安装了 xff0c 可以忽略 3 安装xfce4 sudo apt ge

随机推荐