簡體   English   中英

從didFinishLoad委托調用時,getElementsByTagName返回長度為0的列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM