使用CEF时,加载的网页,如果里面有链接,指定target=”_blank”,则会弹出一个新的浏览窗口。如果想禁掉,让新页面在当前浏览窗口中显示,可以在browser进程的handler里重写CefLifeSpanHandler的OnBeforePopup方法,用browser的mainFrame加载popup请求的url。代码如下:

bool SimpleHandler::OnBeforePopup(CefRefPtr<CefBrowser> browser,CefRefPtr<CefFrame> frame,const CefString& target_url,const CefString& target_frame_name,WindowOpenDisposition target_disposition,bool user_gesture,const CefPopupFeatures& popupFeatures,CefWindowInfo& windowInfo,CefRefPtr<CefClient>& client,CefBrowserSettings& settings,bool* no_javascript_access)
{switch (target_disposition){case WOD_NEW_FOREGROUND_TAB:case WOD_NEW_BACKGROUND_TAB:case WOD_NEW_POPUP:case WOD_NEW_WINDOW:browser->GetMainFrame()->LoadURL(target_url);return true; //cancel create}return false;
}

OnBeforePopup函数的第一个参数browser代表了发出popup请求的浏览器对象,frame是发出popup请求的那个frame,target_url是要加载的目标url,target_disposition是显示方式。我们就管这几个参数就行了,针对特定的几种WOD,用browser的mainFrame加载新的url,返回true,结束创建新窗口的流程。

关于这种需求,这还有一些讨论可以参考:http://www.magpcss.org/ceforum/viewtopic.php?f=6&t=196。里面提到修改DOM或者修改CEF的源码来实现,也可以参考。


就这样吧。

其他参考文章详见我的专栏:【CEF与PPAPI开发】。

CEF中禁止弹出浏览器窗口相关推荐

  1. 如何在Mac上的 Safari 浏览器中阻止弹出式窗口?

    当我们使用Mac电脑上的safari浏览器访问网站时,发现有些网站会有很多弹出式窗口或不必要的内容会出现在浏览器中.为了节省流量和时间,可以在Safari浏览器设置阻止弹出式的窗口.那我们该如何设置呢 ...

  2. JAVA弹出浏览器窗口

    JAVA弹出浏览器窗口(方坤[url]www.whjava.com[/url]) /**弹出浏览器窗口***/@SuppressWarnings("unchecked")publi ...

  3. ZH奶酪:Ionic中(弹出式窗口)的$ionicModal使用方法

    Ionic中[弹出式窗口]有两种(如下图所示),$ionicModal和$ionicPopup; $ionicModal是完整的页面: $ionicPopup是(Dialog)对话框样式的,直接用Ja ...

  4. 自动弹窗被拦截 html,弹出式窗口被阻止怎么办,如何阻止弹出式窗口

    很多人看到"弹出式窗口"这个名词时想必会有所疑惑,弹出与固定式窗口究竟有何不同呢?其实我们在浏览网页的时候就会发现许多弹出式窗口,这种窗口主要应用于广告类,许多商家会为各种大小网页 ...

  5. pyqt5子窗口跳出主窗口_弹出式窗口与 可用性,转换和跳出率

    pyqt5子窗口跳出主窗口 Written by Cassandra Naji 由卡珊德拉·纳吉 ( Cassandra Naji)撰写 They go by many names - modal w ...

  6. 关于弹出消息窗口的自动关闭

    1.方法1 1.1. 直接在代码中添加 // 弹出消息窗口自动关闭,需要指出的是,Windows 2000的user32.dll没有导出这个函数. extern "C" {int ...

  7. 在IE浏览器中,使用Adobe Acrobat Reader dc插件来在线加载PDF,PDF会出现在最前端,并挡住其它需要弹出的窗口

    问题描述 在IE11环境下,使用Adobe Acrobat Reader dc插件来在线加载PDF,PDF加载在一个iframe页面中,此时PDF所在的iframe会有很高的优先级,在原父页面上的其他 ...

  8. 禁用计算机账户控制,win8系统禁止弹出用户账户控制窗口的方法

    有不少win8系统用户在运行一些软件程序的时候,发现Windows总是会自动弹出用户账户控制窗口,虽然可以有效防止有害程序更改计算机设置,但是对于一些可信任的程序来说就多余了,那么要win8系统如何禁 ...

  9. JS教程()js弹出小窗口(没有浏览器窗口地址栏,工具栏,菜单栏,显示栏,只有关闭和最小化按钮)

    使用js弹出小窗口(没有浏览器窗口地址栏,工具栏,菜单栏,显示栏,只有关闭和最小化按钮)代码如下:<input type="text" name="ok" ...

最新文章

  1. mysql执行事务的语句_详解MySQL执行事务的语法和流程
  2. 使用javascript开发2048
  3. 系统更新链接服务器超时,Win10系统更新后Dr.com连接认证服务器一直超时如何解决?...
  4. DApp基础设施设计:借助Kubernetes、Docker和Parity实现可靠的以太坊事件跟踪
  5. pytorch垃圾分类
  6. 怎么获取html页面追加,添加df.to_html格式()到现有的HTML页面
  7. css实现快速抖动效果_web前端入门到实战:CSS实现照片堆叠效果
  8. 机器学习实战-贝叶斯算法-24
  9. why there is always popup window for HANA
  10. pythonjson实例_python对json的相关操作实例详解
  11. 知识产权保护案例分析----CodeMeter在刺绣机行业中的运用
  12. 谷歌地图api根据经纬度查询地名php,在线查询经纬度 google map查询地名返回经纬度 geocode geocoder的完整实例 代码下载...
  13. BitTorrent下载原理和演示
  14. 计算机综合布线实验报告,综合布线设计实验报告.doc
  15. php程序root权限,root权限是什么
  16. 动态创建多个echarts图表
  17. php 模板渲染,ThinkPHP6.0模板渲染 - ThinkPHP6.0快速开发手册(案例版) - php中文网手册...
  18. Python+OpenCV视频的读取与处理;截取部分图像数据; 边界填充
  19. Unity KeyCode键值
  20. MPS DC-DC Designer帮你搞定DC-DC电路设计

热门文章

  1. 【自制yum仓库一】自定义RPM包
  2. 资深游戏设计师解析手机游戏开发的四个层次
  3. 如何制定客户留存策略_App运营:新手都该学会的4种用户留存技巧
  4. 排序之直接排序(边生成边排序)
  5. Python中isdigit()
  6. 闲置宽带做边缘CDN回本话费
  7. css中的百分比单位详解
  8. 资产重估和资产减值准备
  9. Airsim Python API文档整理(1.3.1版本)
  10. 2023年五一假期出行预测报告.pdf(附下载链接)