屏蔽webBrowser打开网页的弹窗

<strong>1.  屏蔽打开网页时的"JS错误"弹窗</strong>
方法I:  将WebBrowser的"Silent"属性设置为"TRUE"
方法II: 代码实现 m_web.put_Silent(TRUE);    //m_web为web控件变量

<strong>2.  屏蔽打开网页时的其他弹窗</strong>
方法I: 重载Web控件所在窗口的方法“OnAmbientProperty”
相关代码如下:
//[说明]此函数为主窗口方法重载,可以屏蔽打开网页的所有脚本运行及弹窗,故要慎用.
#include "mshtmdid.h"
BOOL CansDlg::OnAmbientProperty(COleControlSite* pSite, DISPID dispid, VARIANT* pvar)
{
// TODO:  在此添加专用代码和/或调用基类
if (dispid == DISPID_AMBIENT_DLCONTROL)
{
pvar->vt = VT_I4;
pvar->lVal = DLCTL_NO_RUNACTIVEXCTLS | DLCTL_NO_SCRIPTS | DLCTL_NO_JAVA | DLCTL_NO_DLACTIVEXCTLS
           | DLCTL_NO_FRAMEDOWNLOAD | DLCTL_NO_BEHAVIORS | DLCTL_NO_FRAMEDOWNLOAD | DLCTL_SILENT;
return TRUE;
}

return CDialogEx::OnAmbientProperty(pSite, dispid, pvar);
}

方法II: 重载Web控件的“NewWindow3”事件
相关代码如下:
//此方法通过禁止打开新窗口来屏蔽打开网页弹窗
void CansDlg::NewWindow3Explorer1(LPDISPATCH* ppDisp, BOOL* Cancel, unsigned long dwFlags, LPCTSTR bstrUrlContext, LPCTSTR bstrUrl)
{
// TODO:  在此处添加消息处理程序代码

//不打开新窗口
*Cancel = TRUE;
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。