Qtbackback JavaScript QWEBview
Comment passer d'une fonction de "pointeur" de JavaScript pour un logement?
en JavaScript:
function f1()
{
alert("f1");
}
qtclass.submit(f1);
et dans Qt:
public slots:
void submit(void * ptr)
{
(void)ptr;
}
J'ai besoin de la touche "f1", la fonction de virer dans le JavaScript dans le c++, une fois que le traitement est terminé. Aussi, je ne sais pas à l'avance le nom du pointeur de fonction.
source d'informationauteur user457015
Vous devez vous connecter pour publier un commentaire.
vous devriez être en mesure d'exécuter votre script à l'aide de QWebFrame::evaluateJavaScript méthode. Voir si un exemple ci-dessous serait travailler pour vous:
initialisation de webview:
loadFinished gestionnaire de signal:
test.html:
evaluateJavaScript devrait déclencher une boîte de message d'alerte et de retour QVariant avec f1 résultat de la fonction.
espère que cette aide, en ce qui concerne
Vous pourriez résoudre d'une autre manière, en utilisant Qt signaux, comme suit:
Dans votre fichier HTML, vous pouvez vous connecter à ce signal, comme ceci:
Alors vous classe C++ n'a pas besoin de savoir à propos de la fonction javascript.
Alors qu'il ne serait pas fonctionner dans tous les cas, vous pouvez simplement passer une chaîne à votre logement. Votre logement peut ensuite utiliser evaluateJavaScript (comme serge l'a suggéré) pour appeler la fonction.
et dans Qt:
J'ai un ensemble de solution de travail ici - à l'aide de machines à sous. Cependant, je ne pouvais pas obtenir les signaux de travail, comme suggéré par Kurt.
Le fichier html changements sont -