自定义showModalDialog

plato 2006-08-29 02:02:40
好久没来, 有一问题要向高手请教

如何在自己的Browser程序中截获html window.showModalDialog()? 我想要在自己的Dialog中显示html而不是用IE提供的那个对话框

msdn的那几篇关于IHostDialogHelper的文章, 那里没有提到如何实现自己的IHostDialogHelper, 只是说了如何通过IHostDialogHelper调用IE内部的对话框

我已经尝试过让ControlSite实现IHostDialogHelper, 并且在IServiceProvider.QueryService提供这个接口, 但是不管用

另外, 不要告诉我用API hook...

...全文
751 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
plato 2006-09-01
  • 打赏
  • 举报
回复
INewWindowManager是用来控制是否弹出窗口, 也就是安全控制, 并不能指定替代窗口
plato 2006-08-29
  • 打赏
  • 举报
回复
> window.showModalDialog = function(sURL, vArguments, sFeatures)

这个是JavaScript的实现吧, 如果在vc里面怎么定义一个javascript funciton啊, 应该是类似IDispatch之类的接口吧? 我想了一下, 这样应该可以:

p_ihtmlwindow->execScript("window.showModalDialog=function myshowmodaldialog(sURL, vArguments, sFeatures){ window.external.mycallback.showMyDialog(sURL, vArguments, sFeatures);}", &result);

我要实现external object
蒋晟 2006-08-29
  • 打赏
  • 举报
回复
window.showModalDialog = function(sURL, vArguments, sFeatures)
plato 2006-08-29
  • 打赏
  • 举报
回复
重载showModalDialog也是另外一个思路, 在JavaScript里面我会, 但是在vc里面, 应该传什么样的东西给PutProperty()? 一个IDispatch吗?

另外,怎么结分, 不会... 管理界面里已经有200了, 但是帖子打开还是0分, 不知道为何
plato 2006-08-29
  • 打赏
  • 举报
回复
谢了, 应该让controlSite实现INewWindowManager就可以了吧
蒋晟 2006-08-29
  • 打赏
  • 举报
回复
Not officially possible prior to Windows XP SP2 and Windows 2003 SP1. see NWMF_HTMLDIALOG in MSDN documentation for more information.

However, you may "set" the "showModalDialog" property of the window object to a custom function in order to override the default behavior after the Document Object Modal (DOM) is available. The DOM is available between the DocumentComplete event and the BeforeNavigate2 event of the top level browser object

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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