在"sign in" to login.live或via msdn.com page的过程中,DHTML生成的表单似乎行为不当,因此找到了第一个带有tagName“input”的IHTMLElement
元素并将其转换为{{ 1}}字段可以看到它具有type =“text”,但是在查询时它无法提供IHTMLInputElement
接口。也没有任何其他输入字段为其特定类型提供接口。
相比之下,同样的过程在点击http://gmail.com时效果很好。
我对这个错误的来源感到茫然,DHTML,login.live,月亮处于错误的阶段? 在IE7和IE8上获得相同的问题,因此似乎不是特定于版本的。 无论IE兼容模式如何,都会遇到同样的问题。
这是一个简单的例子
IHTMLInputTextElement
答案 0 :(得分:1)
也许,type = text input元素未完全初始化(未准备好)。
您是否检查了文档的readystate?
如果您从BHO启动了DHTML文档修改操作,则可能会出现此类问题。
安全且简单的替代方法是使用window.execScript函数来执行操作。
答案 1 :(得分:1)
嘿格雷格,我在使用输入元素的BHO工作,所以你的问题引起了我的兴趣。经过一些广泛的测试后,我和你碰到了同样的墙。在DocumentComplete事件触发并且您尝试QI其IHTMLInputTextElement接口的名称和密码元素之后,它将失败。但是,我发现你可以使用HTMLInputTextElementEvents接口成功地接收它们,这使我得出结论,这个问题的原因是MSHTML中的错误导致的。放心月亮的阶段是A-OK。现在,让IE团队了解这个的可能性是什么?