【问题标题】:onload event seen only once per tab每个选项卡只看到一次 onload 事件
【发布时间】:2012-10-20 18:38:50
【问题描述】:

我有一个监听 onload 事件的 BHO。这是在每个 BeforeNavigate2 事件中运行的代码(简化):

CComQIPtr<IWebBrowser2> pBrowser(pDisp);

CComPtr<IDispatch> pUnk = NULL;
HRESULT hr = pBrowser->get_Document(&pUnk);

CComQIPtr<IHTMLDocument2> pHtmlDoc2(pUnk);

CComQIPtr<IHTMLWindow2> pWindow2;
pHtmlDoc2->get_parentWindow((IHTMLWindow2**) &pWindow2);

CComQIPtr<IHTMLWindow3> pWindow3(pWindow2);

VARIANT_BOOL result = VARIANT_TRUE;
CComBSTR onEvent(TEXT("onload"));
pDomEvent = new Page::DOMLoaded();

pWindow3->attachEvent(onEvent, pDomEvent, &result);

(我已删除所有检查以简化)

第一个页面会触发 onload 事件,但之后访问的页面不会触发。我找不到我错过了什么,或者做错了什么。

【问题讨论】:

    标签: c++ internet-explorer bho


    【解决方案1】:

    BeforeNavigate 这样做可能还为时过早。在第二次和随后的电话中,我怀疑您正在使用旧窗口。请改用 NavigateComplete2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多