使用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. 需求工程阅读笔记01
  2. mysql使用数据库_MySQL数据库的常用操作
  3. c语言填空三个数找中间大小,2013计算机等级考试二级C语言填空题.doc
  4. 北京/苏州内推 | 微软亚洲互联网工程院招聘算法工程师/应用科学家
  5. ios 重复引用 静态库_iOS-如果静态库(.a)包含重复的目标文件(.o),会发生什么?
  6. wpf listbox绑定不跟新_你知道新媒体吗?好像跟想象的不太一样
  7. 基于 FPGA 的以太网回环测试verilog实现UDP协议
  8. 20220215-CTF-MISC-BUUCTF-爱因斯坦-binwalk分析图片-dd命令分离ZIP文件--图片属性中寻找密码
  9. java applet程序设计,Java Applet程序设计基础
  10. 中国招商银行设计严重缺陷
  11. bzoj 1070: [SCOI2007]修车【最小费用最大流】
  12. linux ps流程,Linux下PS命令详解 (转)
  13. C#高级编程面试考题
  14. P1234小A的口头禅
  15. 海康机器人工业相机sdk简介
  16. 实数系的基本定理_什么是实数(1):Dedekind分割
  17. 老铁啊,我同你讲, 这年头不会点 Git 真不行!!!
  18. AFNetworking官网文档及翻译
  19. 高流量的客户服务软件排名
  20. 生么用C语言函数做万年历菜单,用C语言如何编写“万年历”

热门文章

  1. 微信输入法上线!再也不怕隐私被盗
  2. python编程——绘制创意图(pecharts、turtle)
  3. 什么是芯片组,南桥与北桥芯片的作用与区别
  4. 解决【ens33】这个网卡一直无法激活问题
  5. 西京学院计算机可以考研吗,西京学院考研难吗
  6. FA-关于固定资产资产原值调整的处理
  7. 问题记录:Hystrix Dashboard 提示:Unable to connect to Command Metric Stream.
  8. mysql mac 图形化界面_mac安装mysql图形化工具?
  9. 【VSCode】代码高亮的调整
  10. 国内传感器厂商其产品正向高端市场迈进