QtWebKit:使用对多个QWebElements的引用调用evaluateJavaScript

时间:2012-11-17 13:35:48

标签: javascript qtwebkit

我的目标是评估QWebFrame中的JavaScript函数,并将其引用传递给多个QWebElements。

我已经能够参考单个QWebElement来评估框架中的JavaScript:

QWebElement element1;
element1.evaluateJavaScript("return this.tagName;");

但是,我希望能够评估一个引用所有元素的脚本。例如,如果存在这样的方法,我会这样做:

QWebFrame frame;
QWebElement element1;
QWebElement element2;
QWebElement element3;
QList<QWebElement> elements;
elements << element1 << element2 << element3;

frame.evaluateJavaScriptWithElements("function(e1, e2, e3) {...}", elements);

一种可能的方法是遍历QWebElements,对于每一个,将它放在DOM中的已知位置。然后,调用脚本将所有元素作为参数传递给它。例如:

frame.evaluateJavaScript("document.myElements = [];");
element1.evaluateJavaScript("document.myElements.push(this);");
element2.evaluateJavaScript("document.myElements.push(this);");
element3.evaluateJavaScript("document.myElements.push(this);");
frame.evaluateJavaScript("(function(e1, e2, e3) {...}).apply(null, document.myElements);");

虽然上面的方法有效,但它很脏,因为它修改了DOM(它将myElements数组添加到文档中)。

有没有人知道在QWebFrame中评估JavaScript的方法,在DOM中引用QWebElements的元素,而不像我上面所示那样修改DOM?

0 个答案:

没有答案