VC6.0 MFC中WebBrowser控件禁止新窗口弹出的解决办法
2024-10-01 21:45:25
http://blog.csdn.net/gnorth/article/details/7258293
在百度上找了很多方法,没有一个能够完美的解决这个问题。
我在XP SP3上测试,WebBrowser的OnNewWindow3事件中处理是无效的,不知道人家说XP SP2有效是怎么回事。
那种创建一个隐藏窗口出来的办法,我个人反正是不愿意去用,总之感觉不太好,而且据说这是目前唯一的解决办法。
后来实在没办法了,只能往土办法去想了,我们知道IE中有状态栏这个东西,当鼠标指向某个链接时,状态栏的文字就变成链接地址了。
经过测试之后,确实可以用WM_GETTEXT来获取到链接,这就解决了OnNewWindow2中获取不到新窗口的链接的问题了。
但是IE可以有状态栏,WebBrowser中我找了一下,没有发现能够显示状态栏的操作,在spy++中查看,也不像IE那样有状态栏的窗口。所以,我又仔细研究了一下WebBrowser关于状态栏的事件。后来发现StatusTextChange中其实就可以直接获取到状态栏的文字了。
于是,写代码的事情就很简单了,而且是完美的解决问题,不管是js的 window.open 还是一个简单的新窗口链接。
void CMWebDlg::OnNewWindow2Explorer1(LPDISPATCH FAR* ppDisp, BOOL FAR* Cancel)
{
VARIANT vars;
m_Web.Navigate(strURL,NULL,NULL,&vars,&vars);
*Cancel =TRUE;
}
void CMWebDlg::OnStatusTextChangeExplorer1(LPCTSTR Text)
{
strURL=Text;
}
在类中或者CPP中 CString strURL; 一下即可。
最新文章
- 完成整个DAO的实现及测试代码
- BZOJ 2179: FFT快速傅立叶
- HTML5学习总结-10 Android 控件WebView显示网页
- CentOS 7将网卡名称eno16777736改为eth0
- 烽火HG220G 配置
- Linux进程间通信IPC学习笔记之消息队列(Posix)
- Java [leetcode 30]Substring with Concatenation of All Words
- binutil 工具-----C分析工工具
- Oracle EBS-SQL (BOM-18):检查BOM与工艺路线对照.sql
- Windows下搭建Eclipse+Android4.0开发环境
- cordova开发中遇到的一些坑
- simplePagination API
- git 查看当前与上一次version的差异
- JS事件响应的学习总结
- 自定义Git
- windows 下运行angualr/material2 项目
- wpf研究之道——自定义Button控件
- MySQL DATEDIFF() 函数
- introduce explaining variable 引入解释变量
- Go语言学习笔记(一) [Go语言的HelloWorld]
热门文章
- excel的隔行插入
- AJAX与XMLHttpRequest
- idea git ignore 插件
- [AngularFire2 &; Firestore] Example for collection and doc
- ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)
- mahout-distribution-0.9.tar.gz的安装的与配置、启动与运行自带的mahout算法
- POJ 1874 畅通工程续(最短路模板题)
- 交叉编译工具链bash: gcc:no such file or directory
- 关于Webpack详述系列文章 (第二篇)
- HDU5126 stars(CDQ分治)