各位,请教一个问题,我要在网页中捕获页面元素的DISPID_HTMLDOCUMENTEVENTS2_ONKEYUP 事件,在单Frame环境下没有问题,但是在多Frame环境下,未捕获到该事件.我的SetSite函数的部分代码如下: CComQIPtr < IServiceProvider, &IID_IServiceProvider> spSP(pUnkSite);
if( !spSP ) return E_FAIL;

spSP->QueryService( SID_SWebBrowserApp, &m_spFrameWB );
if( !m_spFrameWB) return E_FAIL; CComQIPtr< IConnectionPointContainer,
&IID_IConnectionPointContainer> spCPC( m_spFrameWB );
if( spCPC )
{
spCPC->FindConnectionPoint( DIID_DWebBrowserEvents2, &m_spCP );
if( m_spCP )
{
m_spCP->Advise( reinterpret_cast< IDispatch * >( this ), &m_dwCookie );
} }测试用的页面是www.hexun.com主页的登陆表单,其中的用户名和密码项不能捕获到事件!盼高手赐教!

解决方案 »

  1.   

    cross-frame automation is limited in IE. Check if your frames are from the same domain.
      

  2.   

    多谢jiangsheng(蒋晟.Net[MVP])指教. 我看了一下,确实如你所说,其中的iframe与当前页面不是同一域名,多谢!但是不知有何方法可以解决这种跨域的情况下,界面元素事件的捕获呢? 盼jiangsheng不吝赐教!
      

  3.   

    change the IE security settings. Not recommended due to security risk.
      

  4.   

    to jiangsheng:那请问一下是IE安全设置的哪一项呢? 或者是注册表中哪一项?多谢!
      

  5.   

    cross-frame scripting in zone settings