none
webBrowser控件阻止弹出新窗口使用NewWindow事件e.Cancel=true;还是没有用,为什么? RRS feed

全部回复


  • private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
    {
       webBrowser1.Navigate(webBrowser1.StatusText);
       e.Cancel = true;
    }

    加个 webBrowser1.Navigate(webBrowser1.StatusText); 看看是否OK!


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年12月26日 4:51

  • private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
    {
       webBrowser1.Navigate(webBrowser1.StatusText);
       e.Cancel = true;
    }

    加个 webBrowser1.Navigate(webBrowser1.StatusText); 看看是否OK!

    您好,我就是让他不弹出广告,这样是不行的,给个网址您可以测试下:http://www.cncrk.com/downinfo/29270.html,e.Cancel=true;没有效果,仍然还是弹出…
    2012年12月26日 6:00
  • 这到底是为什么???
    2012年12月26日 8:59
  • Hi,

    Please try this,

    private bool disableNewWin = false;
    private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
    {
    	e.Cancel = true;
    	disableNewWin = true;
    }
    
    private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
    {
    	e.Cancel = disableNewWin;
    	disableNewWin = false;
    }


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年12月26日 9:36
  • Hi,

    Please try this,

    private bool disableNewWin = false;
    private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
    {
    	e.Cancel = true;
    	disableNewWin = true;
    }
    
    private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
    {
    	e.Cancel = disableNewWin;
    	disableNewWin = false;
    }

    您好,还是不可以,仍然还是调用IE弹出广告…
    2012年12月27日 1:11
  • 您好,

    我使用VS2012, webBrowser1预设url使用http://www.cncrk.com/downinfo/29270.html,

    已不会再调用IE弹出广告。

    其他Div的广告是会显示在webBrowser中!


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年12月27日 2:08
  • 您好,

    我使用VS2012, webBrowser1预设url使用http://www.cncrk.com/downinfo/29270.html,

    已不会再调用IE弹出广告。

    其他Div的广告是会显示在webBrowser中!

    您好,我使用的是VS2005,在NewWindow事件中设置了e.Cancel=true;仍然还是调用IE弹出广告,难道是环境的问题导致的?
    2012年12月27日 2:28
  • 您好,

    请问您有在 webBrowser1_Navigating 事件中在Cancel一次吗? 

    也要在webBrowser1_Navigating去挡哦!


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/


    2012年12月27日 3:33
  • 您好,

    请问您有在 webBrowser1_Navigating 事件中在Cancel一次吗? 

    也要在webBrowser1_Navigating去挡哦!

    private void button2_Click(object sender, EventArgs e)
            {
                extendedWebBrowser1.ScriptErrorsSuppressed = true;
                extendedWebBrowser1.NewWindow += new CancelEventHandler(extendedWebBrowser1_NewWindow);
                extendedWebBrowser1.Navigating += new WebBrowserNavigatingEventHandler(extendedWebBrowser1_Navigating);
                extendedWebBrowser1.Navigate("http://www.cncrk.com/downinfo/29270.html");
            }
     private bool disableNewWin = false;
            void extendedWebBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
            {
                e.Cancel = disableNewWin;
                disableNewWin = false;
            }
    
            void extendedWebBrowser1_NewWindow(object sender, CancelEventArgs e)
            {
                e.Cancel = true;
                disableNewWin = true;
            }
    
    
    
    就是这样的呀,可是还是不行,仍然弹出广告,NewWindow2和NewWindow3事件都不行……

    2012年12月27日 3:57
  • 您好,
    请问extendedWebBrowser1是System.Windows.Forms.WebBrowse吗?

    可将您的专案放在SkyDrive的上给我们下载吗?


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/


    2012年12月27日 4:44
  • 您好,
    请问extendedWebBrowser1是System.Windows.Forms.WebBrowse吗?

    可将您的专案放在SkyDrive的上给我们下载吗?

    extendedWebBrowser1是我对WebBrowse的扩展,跟这个没关系,即使换成WebBrowse还是会弹出广告!这个是链接地址:http://pan.baidu.com/share/link?shareid=167125&uk=1527966466
    2012年12月27日 5:52
  • 您好,

    今天再试了一下,e.Cancel=true;居然无效了!

    有找到「Multi Tab WebBrowser」,您可以试看看哦!

    它是把新开的视窗新增一个TAB去放,所以您可以在axWebBrowser1_NavigateComplete2 Method中的最后,将新增出来的视窗给移掉,如下,
    private void axWebBrowser1_NavigateComplete2(object sender, AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event e)
    {
    	HE_WebBrowserTag _HE_WebBrowserTag = (HE_WebBrowserTag)_ActiveWebBrowser.Tag;
    	if (_HE_WebBrowserTag._TabIndex != tabControl1.SelectedIndex) {return;}
    
    	Cursor.Current = Cursors.Default;
    	tlbStop.Enabled = false;
    	tlbHome.Enabled = true;
    	tlbSearch.Enabled = true;
    	tlbRefresh.Enabled = true;
    	tlbFind.Enabled = true;
    	progressBar1.Value = 0;
    	statusBar1.Text = "";
    	if (tabControl1.TabPages.Count > 0)
    	{
    		for (int i = tabControl1.TabPages.Count - 1; i > 0;i-- )
    		{
    			tabControl1.TabPages.RemoveAt(i);
    		}
    	}
    }
    
    希望对您有帮助,谢谢!

    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年12月27日 7:41
  • 您好,

    今天再试了一下,e.Cancel=true;居然无效了!

    有找到「Multi Tab WebBrowser」,您可以试看看哦!

    它是把新开的视窗新增一个TAB去放,所以您可以在axWebBrowser1_NavigateComplete2 Method中的最后,将新增出来的视窗给移掉,如下,
    private void axWebBrowser1_NavigateComplete2(object sender, AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event e)
    {
    	HE_WebBrowserTag _HE_WebBrowserTag = (HE_WebBrowserTag)_ActiveWebBrowser.Tag;
    	if (_HE_WebBrowserTag._TabIndex != tabControl1.SelectedIndex) {return;}
    
    	Cursor.Current = Cursors.Default;
    	tlbStop.Enabled = false;
    	tlbHome.Enabled = true;
    	tlbSearch.Enabled = true;
    	tlbRefresh.Enabled = true;
    	tlbFind.Enabled = true;
    	progressBar1.Value = 0;
    	statusBar1.Text = "";
    	if (tabControl1.TabPages.Count > 0)
    	{
    		for (int i = tabControl1.TabPages.Count - 1; i > 0;i-- )
    		{
    			tabControl1.TabPages.RemoveAt(i);
    		}
    	}
    }
    希望对您有帮助,谢谢!

    您好,那个Multi Tab WebBrowser找不到。另外这样做会影响程序界面,好象不太好。一些正常的页面e.Cancel=true;是可以阻止的,但为什么这种广告却不受e.Cancel的限制呢?
    2012年12月27日 8:20