积极答复者
急求解!!!JavaScript中如何使用IHTMLWindow2接口???

问题
答案
-
不客气,这个问题我是这么理解的,IHTMLWindow2 这个接口是ie提供的扩展,这个应该是COM,ie内部执行javascript的操作在本质上应该也是调用这个接口,c#或者c++在使用WebBrowser控件应该也是对这个的调用,虽然可能用了不同的类名。
突然想到了另一种方式,你可以试试能不能用ie浏览器插件来使用这个接口,那样的话应该就相当于本地调用了,否则不可能在b/s中使用
- 已标记为答案 LeoTangModerator 2012年6月19日 2:56
全部回复
-
Hi,
关于IHTMLWindow2的接口你可以看http://msdn.microsoft.com/en-us/library/aa741505(v=vs.85).aspx ,其实它是属于COM 组件的一个接口用于对IE进行扩展的,本身很多IE的扩展功能都是通过C++调用com来实现,比如BHO,改变窗口缩放大小以及另外一些操作DOM元素.C#有个COM互操作的机制,用的CCW来解析C++的com接口,相当于CCW起着桥梁的作用。
Sincerely,
Jason Wang
Jason Wang [MSFT]
MSDN Community Support | Feedback to us
-
Hi,
关于IHTMLWindow2的接口你可以看http://msdn.microsoft.com/en-us/library/aa741505(v=vs.85).aspx ,其实它是属于COM 组件的一个接口用于对IE进行扩展的,本身很多IE的扩展功能都是通过C++调用com来实现,比如BHO,改变窗口缩放大小以及另外一些操作DOM元素.C#有个COM互操作的机制,用的CCW来解析C++的com接口,相当于CCW起着桥梁的作用。
Sincerely,
Jason Wang
Jason Wang [MSFT]
MSDN Community Support | Feedback to us
谢谢您的回复。
那按照上面说法,javaScript中是不是不能使用IHTMLWindow2接口?
如果可用,如何使用?谢谢!
-
Hi LJG1119,
可以的,Javascript只是脚本语言,它能做的同样用这个接口也能操作DOM和BOM对象模型。
Jason Wang [MSFT]
MSDN Community Support | Feedback to us
-
Hi LJG1119,
可以的,Javascript只是脚本语言,它能做的同样用这个接口也能操作DOM和BOM对象模型。
Jason Wang [MSFT]
MSDN Community Support | Feedback to us
很感谢你的回复~~
Javascript怎么使用IHTMLWindow2接口,我还是不会,你能否举个Javascript使用例子(代码简单写下)?
很抱歉添麻烦了。。。
例如:
A.html中 window.open(error.html,,,)
error.html需要使用IHTMLWindow2::resizeTo改变窗口大小。
- 已编辑 LJG1119 2012年6月13日 4:30 格式修改
-
原文的解释是这样的
To work around this issue, use a WebBrowser control-based application. When you host the Internet Explorer Web Object Control (WebOC), you can use theIHTMLWindow2::resizeTo method or the IHTMLWindow2::moveTo method to resize the window.
原文见http://support.microsoft.com/kb/904947/
机器翻译不准确
- 已编辑 ruiqing zhang 2012年6月13日 5:51 补充内容
-
1. IHTMLWindow2::resizeTo 这个接口提供的是对IE的API的访问 ,在js中可以认为window对象实现了这个接口,也就是对应了window.resizeTo(...)方法。出于安全性上的考虑,ie禁止了浏览器端脚本对本地窗口的操作,所以resizeTo方法会报错
2. WebBrowser是WinForm的控件,也就是在本机程序中使用的,从这里访问的地址都应该是开发者指定的,应该能保证安全,所以开放了resizeTo等方法。
从官方的解释来看,应该能这么理解这个问题
谢谢说明:
关于上面的理解,我想大概也是如zhang同学所讲。。。
1.对于1我有个疑问。
参照以上理解,js中使用window对象等价于IHTMLWindow2这个API接口,为什么微软提供了IHTMLWindow2::resizeTo 作为解决方法呢。zhang同学那边能理解吗?
哎,现在用户就揪着这个不放。
针对这种情况js中这个问题没办法通过IHTMLWindow2::resizeTo类似方法解决了?
2.例如类似winForm的控件,我能在js中用吗,还是必须通过类似C++/C#实现?
一次次提问,麻烦了。。。
谢谢!
-
不客气,这个问题我是这么理解的,IHTMLWindow2 这个接口是ie提供的扩展,这个应该是COM,ie内部执行javascript的操作在本质上应该也是调用这个接口,c#或者c++在使用WebBrowser控件应该也是对这个的调用,虽然可能用了不同的类名。
突然想到了另一种方式,你可以试试能不能用ie浏览器插件来使用这个接口,那样的话应该就相当于本地调用了,否则不可能在b/s中使用
- 已标记为答案 LeoTangModerator 2012年6月19日 2:56