IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

[QtWebKit] Intercepter un événement JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut [QtWebKit] Intercepter un événement JavaScript
    Bonjour,

    J'aimerais savoir s'il est possible, et comment, d'intercepter par exemple le clic d'un bouton d'une page, affichée par un QWebView par une application Qt.

    Je veux donc qu'un clic sur un "input button" :

    - Déclenche l'événement onclick de JS pour mettre ma page en attente (ce n'est pas ma question)
    - Déclenche en même temps un traitement "desktop" par Qt, qui provoquera un changement de page à sa fin.

    Étant donné que l'on peut injecter du JS dans une page avec WebFrame::evaluateJavaScript() (seule façon que je connaisse pour l'instant), j'espère que l'on peut faire l'inverse.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut.
    Tu peut exploiter un QObject avec le JS avec
    http://qt.developpez.com/doc/latest/...ptWindowObject
    Cela te permet d'associé ton instance avec un nom et tu pourra appeler :
    - ses slots
    - ses propriété (il me semble)
    - ses fonctions notées invokable.
    http://qt.developpez.com/doc/latest/...ml#Q_INVOKABLE

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Eh bien, j'avais regardé ce addToJavaScriptWindowObject() vite fait mais j'avais pas compris... Dans mon esprit c'était Qt qui interceptait un événement JS, et non JS qui appelait des fonctions Qt rendues au préalable disponibles... Ça a l'air vraiment génial ! Merci beaucoup, je reviendrai mettre ce sujet en résolu (ou poser une autre question si je rencontre des problèmes) une fois que j'aurais testé

    Edit : Ca marche, il suffit de faire comme montre le premier exemple WebKit fourni avec Qt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/03/2007, 09h03
  2. Interception d'événements COM par vbscript
    Par fabrice2 dans le forum Windows
    Réponses: 1
    Dernier message: 27/02/2007, 17h24
  3. Réponses: 11
    Dernier message: 19/10/2006, 16h07
  4. perte d'événement Javascript
    Par mcrbe dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/12/2005, 11h37
  5. [fenetre à onglets] Intercepter les événements des panels
    Par Regis.C dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 14/04/2005, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo