如题,现在我自己用C#和.Net的WebBrowser控件写了个浏览器,但现在发现我写的浏览器在打开含有showModalDialog的页面时,显示的是微软IE的窗体,而不是我自己写的浏览器。请问有什么方法可以在我自己写的浏览器中打开showModalDialog的窗体?
含有showModalDialog的页面如下:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Untitled Page</title>
</head>
<body>
<script type="text/javascript">
<!--
function foo()
{
  window.showModalDialog("http://www.google.cn", window, "Width:320px;Height:240px");
}
-->
</script>
<button onclick="foo()">OK</button>
</body>
</html>
我希望打开www.google.cn的是我自己的浏览器,而不是IE,请高手指点

解决方案 »

  1.   

    如果这样,可能你要自己来解释标准的“JavaScript”了。
      

  2.   

    像Tencent Traveler等浏览器只所以可以使用自己的窗口来打开页面,是因为它所有的脚本程序都是他们自己的浏览器来解释执行的。如果自己不解释,你使用的实际上还是“IE”。
      

  3.   

    try
    修改注册表,把默认的游览器改为你的
      

  4.   

    把默认的浏览器改成你的
    一:打开注册表。
            “开始”菜单->“运行”->输入 regedit 然后点确定。
       二:打开HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\INTERNET EXPLORER,在其下新建一个主键"View Source Editor",在其下再新一个主键"Editor Name",又击右侧窗口中的"默认"将数值设为更换程序的路径及文件名.   三:重新启动INTERNET EXPLORER,查看某个网页的源文件,用户就会发现打开的程序已经更改了.
      

  5.   

    楼上的,我不是要该默认浏览器~
    是要用自定义的浏览器打开模式对话框~
    PS:我写的WebBrowser是在另一个主程序里的,不是独立的浏览器我现在的想法是直接改IE的底层COM组件,不知道有人有这方面经验么?
      

  6.   

    在webbrowser控件的容器窗口里重载window.showModalDialog。
    重载的方法,最简单的就是用IHTMLDocument.script得到脚本引擎的handle
    执行一段js,类似这样:
    window.showModalDialog=function()
    {
       window.external.xxxx();//参看IDocHostUIHandler::GetExternal
    }