VC6.0 MFC中WebBrowser控件禁止新窗口弹出的解决办法
来源:互联网 发布:中央大街附近美食知乎 编辑:程序博客网 时间:2024/05/21 22:22
在百度上找了很多方法,没有一个能够完美的解决这个问题。
我在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; 一下即可。
- VC6.0 MFC中WebBrowser控件禁止新窗口弹出的解决办法
- vs2008MFC中WebBrowser控件禁止新窗口弹出的解决办法
- WinForm中的webBrowser控件禁止弹出新窗口
- 禁止WebBrowser控件弹出对话框
- C# WebBrowser 禁止WebBrowser控件弹出对话框
- 禁止Webbrowser控件的弹出脚本错误对话框
- C# 禁止 Webbrowser 控件的弹出脚本错误对话框
- C# 禁止 Webbrowser 控件的弹出脚本错误对话框
- 关于MFC项目中使用WebBrowser控件禁止脚本错误的方法
- 关于MFC项目中使用WebBrowser控件禁止脚本错误的方法
- 关于MFC项目中使用WebBrowser控件禁止脚本错误的方法
- 关于MFC项目中使用WebBrowser控件禁止脚本错误的方法
- WEB新标准中链接弹出新窗口的解决办法
- Webbrowser 禁止在新窗口打开
- WebBrowser控件中禁止alert,confirm等对话框的方法
- vb webbrowser 在原窗口打开弹出新窗口的链接
- [MFC]如何禁止webbrowser的网页缩放
- 防止WebBrowser控件在新窗口中打开链接页面
- c和指针的第一个例子程序
- 有空试试这个Rexsee移动Web开发平台
- LAMP网站架构各模块配置的分析
- 基于Amazon EC2反向代理Google App Engine
- 在centos上编译jdk 问题大全
- VC6.0 MFC中WebBrowser控件禁止新窗口弹出的解决办法
- linux环境变量 export命令详解
- mysql 导入导出 csv
- Eclipse快捷键大全
- 2012-02-14 12:28 之前的日志 见百度空间
- ntpd ntpdate时间同步
- 转国内一个LSB街旁的数据发布2011签到信息图,2月14日10点后986人在酒店签到
- ffmpeg命令行接收UDP(MPEG-TS)数据
- struts2--<s:debug>标签