2010-05-24 60 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... 
} 

然而,当该委托火灾,list.length()返回0。我已经看到了它返回非零长度的列表中的唯一时间是当我用“body”或“head”替换“img”时。奇怪的是,如果我拨打getElementsByTagName(L"img")以外的代表,它工作正常。

我在猜测,当调用didFinishLoading时DOM没有被完全加载,但这似乎与代表的名字相矛盾。有谁知道我可能在这里失踪?

回答

1

事实证明,这个错误纯粹是在我身边。我在我的帧封装器中缓存了一个指向DOM文档的指针。当然,因为一个框架可以超越DOM文档,所以一旦我加载了一个新页面,我最终引用了一个过时的文档。