环境:XP(SP2) IE8 
TT3.0 创景浏览器1.0 我的浏览器我发现,只要是采用了IE异步协议,即先获取处理网页数据再提交给IE,那么就有可能在网页加载过程中弹出保存对话框。TT、创景和我的browser都有这种现像。不过是TT极少,创景较多,我的不多,IE貌似还没见过。为啥说和IE异步协议有关呢,因为我的browser遇上这问题后,取消使用IE异步协议,网页就能正常加载了。还有就是,如果该网页刚刚被打开过一次,那么肯定不会出现弹出对话框情况。所以我认为和IE缓冲机制有关系。但具体原理我不明白,还请大虾给指点。

解决方案 »

  1.   

    问题有进展了:
    使用IE异步协议时,我首先自己下载网页数据,处理后提交给WebBrowser。如果下载失败,我返回INET_E_USE_DEFAULT_PROTOCOLHANDLER。不幸的是,如果我下载失败,WebBrowser也受到影响(仅限于下载失败那个url),具体如何受影响不清楚,但结果就是开头图片中所示样子。避免问题的方法就是要确保自己下载成功,失败原因我找到了:HttpWebResponse返回的字符编码是“ANSI”。而C# Encoding并不支持这个名称。所以下载虽然成功,但后继的处理给失败了,失败后返回了INET_E_USE_DEFAULT_PROTOCOLHANDLER。解决办法是用Encoding.default代替ANSI