PDA

View Full Version : QWebView->QWebPage->QWebFrame->evaluateJavaScript returned data



phannent
29th July 2008, 14:59
Hello,

I am trying to get a list of images from a page. I got as far as downloading the page and running some JavaScript on it. However the returned data is not what I was expecting. I call this:



QVariant listOfImages = webView.page()->mainFrame()->evaluateJavaScript("document.getElementsByTagName(\"img\")");
qDebug() << listOfImages;


The console window shows:
Debug: QVariant(QVariantMap, QMap(("length", QVariant(double, 20) ) ) )

Anybody know how I can extract the list of images?

phannent
1st August 2008, 11:25
Ok,

So I took another route:



QVariant listOfImages = webView.page()->mainFrame()->evaluateJavaScript("document.getElementsByTagName(\"img\").length;");
double numberOfImages = listOfImages.toDouble();

then:


for (double i = 0; i < numberOfImages; ++i)
{
srcOfImages = webView.page()->mainFrame()->evaluateJavaScript(QString("document.getElementsByTagName(\"img\")[%1].src;").arg(i));
imageUrl = srcOfImages.toString();
}

Job done.

rbp
16th June 2010, 15:42
that's a neat trick but it feels dirty! Have you found any cleaner alternatives since then?
Also what about background images referenced in CSS?