2010-05-24 55 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文檔,所以一旦我加載了一個新頁面,我最終引用了一個過時的文檔。