gpt4 book ai didi

c++ - 从 didFinishLoad 委托(delegate)调用时,getElementsByTagName 返回长度为 0 的列表

转载 作者:行者123 更新时间:2023-11-28 08:29:13 26 4
gpt4 key购买 nike

我在 Windows 上使用 WebKit 的 Chromium 端口,我正在尝试检索文档中所有图像的列表。我认为最好的方法是像这样实现 WebKit::WebFrameClient::didFinishLoading:

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

但是,当此委托(delegate)触发时,list.length() 返回 0。我看到它返回非零长度列表的唯一一次是当我替换“body”或“头”为“img”。奇怪的是,如果我在委托(delegate)之外调用 getElementsByTagName(L"img") ,它会正常工作。

我猜测当调用 didFinishLoading 时 DOM 没有完全加载,但这似乎与委托(delegate)的名称相矛盾。有谁知道我在这里可能遗漏了什么?

最佳答案

事实证明,错误完全在我这边。我在我的框架包装器中缓存了一个指向 DOM 文档的指针。当然,由于框架的生命周期可能比 DOM 文档长,所以我在加载新页面后最终引用了一个过时的文档。

关于c++ - 从 didFinishLoad 委托(delegate)调用时,getElementsByTagName 返回长度为 0 的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2899675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com