![](/img/trans.png)
[英]Google Chrome sending a second, 0-length request when visiting a website?
[英]getElementsByTagName returns 0-length list when called from didFinishLoad delegate
我在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尚未完全加載,但這似乎與委托人的名字相矛盾。 有人知道我在這里可能會想念的嗎?
事實證明,錯誤完全在我這一邊。 我在框架包裝器中緩存了指向DOM文檔的指針。 當然,由於框架可以超過DOM文檔的壽命,所以一旦加載新頁面,我最終將引用過期的文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.