Planned maintenance has been done but it did not solve the problem. So work will continue on this and a new time for trying updates will be announced asap.

How to get result from javascript code run by runJavaScript in QtWebengine?



  • How can I get the result from javascript run by runJavaScript in QtWebengine?

    I want to get result from the js run by runJavaScript. The result is formed after some time in js, but since js returns immediately, I can not get the mature result. How can I modify the js code or the C++ code to get the mature result? I know I can use QWebChannel to notify C++ of the mature result at appropriate time but that is a little complex. Can I delay the return time of js code so it can return with the matured result?

    C++:

    page()->runJavaScript(js,[this](const QVariant &v) {
            qDebug()<<v.toString();
    }
    

    js:

    var result="immature result";
    function fun()
    {
        result="mature result";
    }
    setTimeout(fun,2000);
    result;
    

  • Qt Champions 2018



  • In your runJavascript function either you emit a signal or you can call a function of the save class and then pass the value in that function.

    page()->runJavaScript(js,[this](const QVariant &v) {
    newFunction(v);
    }

    Then in newFunction you can carry out the further code.


Log in to reply