自定义WebBrowser控件中打开showModalDialog窗体

anchovy1984 2008-01-04 10:17:56
如题,现在我自己用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,请高手指点
...全文
379 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
eduyu 2008-01-29
  • 打赏
  • 举报
回复
在webbrowser控件的容器窗口里重载window.showModalDialog。
重载的方法,最简单的就是用IHTMLDocument.script得到脚本引擎的handle
执行一段js,类似这样:
window.showModalDialog=function()
{
window.external.xxxx();//参看IDocHostUIHandler::GetExternal
}
curd0468 2008-01-04
  • 打赏
  • 举报
回复
把默认的浏览器改成你的
一:打开注册表。
“开始”菜单->“运行”->输入 regedit 然后点确定。
二:打开HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\INTERNET EXPLORER,在其下新建一个主键"View Source Editor",在其下再新一个主键"Editor Name",又击右侧窗口中的"默认"将数值设为更换程序的路径及文件名.

三:重新启动INTERNET EXPLORER,查看某个网页的源文件,用户就会发现打开的程序已经更改了.
anchovy1984 2008-01-04
  • 打赏
  • 举报
回复
有没有详细点的方法啊~有点模糊啊
真相重于对错 2008-01-04
  • 打赏
  • 举报
回复
try
修改注册表,把默认的游览器改为你的
北京的雾霾天 2008-01-04
  • 打赏
  • 举报
回复
像Tencent Traveler等浏览器只所以可以使用自己的窗口来打开页面,是因为它所有的脚本程序都是他们自己的浏览器来解释执行的。如果自己不解释,你使用的实际上还是“IE”。
北京的雾霾天 2008-01-04
  • 打赏
  • 举报
回复
如果这样,可能你要自己来解释标准的“JavaScript”了。
anchovy1984 2008-01-04
  • 打赏
  • 举报
回复
楼上的,我不是要该默认浏览器~
是要用自定义的浏览器打开模式对话框~
PS:我写的WebBrowser是在另一个主程序里的,不是独立的浏览器

我现在的想法是直接改IE的底层COM组件,不知道有人有这方面经验么?

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧