// имеем класс TST// соединяем страничку и наш класс.ui.webView->page()->mainFrame()->addToJavaScriptWindowObject("TST", this);// любой скрипт. (все функции класса можно вызывать через "TST")tmp = "var divs=document.getElementsByTagName('li'); " "TST.allo(1, 2, 3, 4, 5, 6, 7, 8, 9); ";// выполняем скрипт и получаем цифры от 1 до 9 в вызываемом слоте.ui.webView->page()->mainFrame()->evaluateJavaScript(tmp);
tmp = "var divs=document.getElementsByTagName('li'); " "TST.allo(1, 2, 3, 4, 5, 6, 7, 8, 9); ";
QString TST::allo(){return "be be be";}//-- куча кодаtmp = "var divs= TST.allo(); "; "alert(divs);"ui.webView->page()->mainFrame()->evaluateJavaScript(tmp);// должен вывести строку "be be be"
class MyArray{public: QByteArray arr; QByteArray getArr() { return arr; }};
MyArray myArray;myArray.arr.append("123");myView->page()->mainFrame()->addToJavaScriptWindowObject("myArray", this);QVariant gg = myView->page()->mainFrame()->evaluateJavaScript("mytest()");qDebug() << gg;
QVariant(, )
<script type="text/javascript">function mytest(){ var i = 0; i = myArray.getArr(); return i.length;}</script>
class MyArray{public: QByteArray arr; QByteArray getArr() { return arr; } QString getStr() { return "vau !!!"; }};