如何用Webbrowser控件让下面的js代码不弹出IE窗口而是在本Webbrowser控件内弹出新的标签<script type="text/javascript">
function object_pop(url){var object=document.createElement('object');object.setAttribute('classid','CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6');object.style.cssText='position:absolute;left:1px;top:1px;width:1px;height:1px;';append(object);object.launchURL(url)}function append(e){for(var t in{body:1}){var ele=document.getElementsByTagName(t);for(var i=0;i<ele.length;i++){ele[i].insertBefore(e,ele[i].firstChild);return}}}object_pop("http://www.xamq.com");</script>http://www.xamq.com/tan.htm这个页面里的源代码跟上面一样,没有网站的可用这个页面测试。。别的弹窗基本都搞定了,就差这一种了,哥哥兄弟,有弄过的帮忙提示提示,给点代码。。

解决方案 »

  1.   

    我看这个需要用过滤网页源码的方式来实现。用正则写还是相对容易的。
    网页源码过滤最佳方法是采用IE异步协议。IE异步协议又分两种:
    命名空间协议和MIME协议。过滤源码最好是采用MIME协议。遗憾的是,经我无数资测试,.net下MIME协议运行过程中总是无法避免偶发的、无法调试的win32异常。
    命名空间协议倒是可稳定使用。不过与其使用命名空间协议,还不如自己来个更简单的:访问某网站前先下载该网站源码,并进行过滤,将过滤后源码载入webbrowser.
      

  2.   

    private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
            {
                e.Cancel = true;     
                Uri uri = new Uri(((WebBrowser)sender).StatusText);
                this.webBrowser1.Url = uri; 
            }
    这个事件可以解决
      

  3.   

    嗯。直接在NewWindow这个事件里写这段代码