我在Windows上使用WebKit的Chromium端口,我正在尝试检索文档中所有图像的列表。我认为最好的方法是实现WebKit::WebFrameClient::didFinishLoading
,如下所示:
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没有完全加载,但这似乎与委托的名称相矛盾。有谁知道我在这里失踪了什么?
答案 0 :(得分:1)
事实证明,错误完全在我身边。我正在我的框架包装器中缓存指向DOM文档的指针。当然,由于框架可以比DOM文档更长,所以在加载新页面后,我最终引用了一个过时的文档。