环境:vs2005 C# winform XPsp2 IE8 
测试网页:中国雅虎首页成功地给WebBrowser安装了MIME过滤,添加的过滤类型是"text/html"。出现一个问题:网页里显示flash的JS代码失效了。以yahoo首页为例:
<script charset="gbk" src="http://p.tanx.com/ex?i=mm_17230573_2278684_8962768"></script>开始我以为是自己在获取网页源码时出了问题,但我使用IE把网页保存为纯html后再打开,flash也不能显示。经查是IE的安全机置所造成。可采用如下解决办法:在<head>标签后添加:"<!-- saved from url=(0013)about:internet -->"加上这行代码后,本地的html文件可以显示出flash了。于是我便在MIME过滤器里,把返给IE的网页源码里也加上了这行代码。不料还是显示不出flash还请大虾们提出宝贵意见,谢谢。

解决方案 »

  1.   

    问题基本解决。问题原因是没有意识到JS源码其实也属于"text/html"范围。我发现那些用于显示flash的JS代码也被列入了我的MIME过滤名单。比如
    <script charset="gbk" src="http://p.tanx.com/ex?i=mm_17230573_2278684_8962768"></script>
    这里面的http://p.tanx.com/ex?i=mm_17230573_2278684_8962768我至今不解的是,即使我在MIME中不加任何处理直接将得到的数据返回,flash还是显示不出来--我不知道到底是哪里导致JS源码失真的。我目前办法是根据正则找到所有<script>标签,凡是JS相关的,Start函数中返回INET_E_USE_DEFAULT_PROTOCOLHANDLER。这样才避免了数据失真,flash终于重见天日。