2010-05-24 2 views
0

Windows에서 WebKit의 Chromium 포트를 사용 중이고 문서의 모든 이미지 목록을 검색하려고합니다. 나는이 작업을 수행하는 가장 좋은 방법을 생각하는 것은과 같이 WebKit::WebFrameClient::didFinishLoading을 구현하는 것이었다 그러나getElementsByTagName은 didFinishLoad 대리자에서 호출 할 때 길이가 0 인 목록을 반환합니다.

WebNodeList list = document->getElementsByTagName(L"img"); 
for (size_t i = 0; i < list.length(); ++i) { 
    // Manipulate images here... 
} 

, 0 내가 그것을 제로가 아닌 길이의 목록을 반환 본 적이있는 유일한 시간이 위임 화재, list.length() 반환 때 나는 "몸"또는 "머리"를 "img"로 대체 할 때. 이상하게도 위임자의 외부로 호출하면 제대로 작동합니다.

didFinishLoading이 호출 될 때 DOM이 완전히로드되지 않았지만 위임자 이름과 모순되는 것처럼 보입니다. 아무도 내가 여기에서 놓칠지도 모르는 것을 알고 있냐?

답변

1

실수는 내 것이 었습니다. 내 프레임 래퍼에서 DOM 문서에 대한 포인터를 캐싱했다. 물론 프레임이 DOM 문서보다 오래 남아있을 수 있기 때문에 새로운 페이지를로드 한 후에 오래된 문서를 참조하게되었습니다.

관련 문제