毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> windows平台 >> 正文

IE9中IE9文档模式 MSHTML.IDispatch.GetIDsOfNames 无法得到IDs

更新时间:2013-1-23:  来源:毕业论文

IE9中IE9文档模式 MSHTML.IDispatch.GetIDsOfNames 无法得到IDs

使用 MSHTML.IHTMLWindow2.execScript 插入了一段JavaScript,其中包含某函数。

在IE6、7、8中,使用MSHTML.IDispatch.GetIDsOfNames找到函数,后再使用MSHTML.IDispatch.Invoke执行,一切正常。

但是在IE9中IE9文档模式时,MSHTML.IDispatch.GetIDsOfNames找不到函数,异常 COMError: -2147352570 未知名称。
通过微软自带的IE开发者工具查找函数并执行,一切正常。那么MSHTML.IHTMLWindow2.execScript是通过了,关键就是MSHTML.IDispatch.GetIDsOfNames这里的问题了。

这种情况哪位先行者遇到过? 是不是IE9的新的安全机制? 我主要目的是调用WEB内的JavaScript,白盒测试。

目前发现GetIDsOfNames可以找到window和document的ID

但是HTML内混合编写的JavaScript成员不能得到ID,报错“未知名称”。尝试获取eval的ID也是失败。

问题继续存在

这个跟Java无关,隶属于Win32API和Win32COM,也算属于安全。

 
1
 
down vote
favorite
3 I have an Internet Explorer BHO that can execute a script on the current website and then read variables that have been assigned in that script. Unfortunately, as of IE9 (I tested with the RC), reading the JS variable results in a HRESULT 0x80020006.

The script sets assigns the JS variable as follows:

this.<js_var> = <value>
where this is the current Window object. It is executed using

hr = pWindow->execScript( ccom_js, lang, &vEmpty );
and the JS variable is read using

bool get_js_var( CComPtr<IDispatch> pDisp, LPOLESTR name, VARIANT *dest )
{
  DISPID id;

[1] [2] 下一页

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。