getElementsByTagName возвращает список 0 длины при вызове из делегата didFinishLoad - PullRequest
0 голосов
/ 24 мая 2010

Я использую порт Chromium WebKit в Windows и пытаюсь получить список всех изображений в моем документе.Я подумал, что лучший способ сделать это - реализовать WebKit::WebFrameClient::didFinishLoading следующим образом:

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

Однако, когда этот делегат срабатывает, list.length() возвращает 0. Единственные случаи, когда я видел его, возвращают списокненулевой длины - это когда я заменяю «тело» или «голова» на «img».Как ни странно, если я вызываю getElementsByTagName(L"img") вне делегата, он работает правильно.

Я предполагаю, что DOM загружается не полностью при вызове didFinishLoading, ноэто может противоречить имени делегата.Кто-нибудь знает, чего мне здесь не хватает?

1 Ответ

1 голос
/ 06 июня 2010

Оказывается, ошибка была чисто на моей стороне.Я кэшировал указатель на документ DOM в моей оболочке фрейма.Конечно, так как фрейм может пережить DOM-документ, я закончил ссылаться на устаревший документ после загрузки новой страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...