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

Moteurs Web Discussion :

Récupérer le résultat de evaluateJavaScript


Sujet :

Moteurs Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de GoldenEyes
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut Récupérer le résultat de evaluateJavaScript
    salut ,
    j'ai utiliser "addToJavaScriptWindowObject" and "evaluateJavaScript" pour injecter et evaluer le script output2 a la page web ,
    le script "output2" injecter permet d'extraire les noms de fonction javascript d'une page web ,
    puis j'ai recuperé ces noms de fonctions et je les executer a l'aide de script "ss".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    void Webkit::applyscript2()
    {
       QFile file ("exemple/onclick.js");
              if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
                           { qDebug()<< "le fichier n'existe pas " ; return;}
     
                QTextStream out(&file);
               QString output2 = out.readAll();
                file.close();
     
    QWebFrame*  f = v.page()->mainFrame();
     
        if (!dataScript) {
            dataScript = new ApplyScript();                
            f->addToJavaScriptWindowObject("linkCssOutput", dataScript);
                               }
     
    QVariant vrr = f->evaluateJavaScript(output2);
    fct_script  =dataScript->getLink();
    int j;
     for (j=0;j<fct_script.size();j++)
      {QString contenu_fct =fct_script[j];
     
    QString ss=QString("var f='window.addEventListener(\"load\",'+%1+', false);';"
    "var ff='window.attachEvent(\"onload\",%1);';"
     " if (window.addEventListener) {alert (\"dans if\" ); "
             "eval(f);"
          "} else if (document.addEventListener) { "
             "eval(f);"
          "} else if (window.attachEvent) {"
             "eval(ff);"
          "}").arg(contenu_fct);
    QVariant vrr = f->evaluateJavaScript(ss);
    }
    }
    /////////// setLink et getLink //////////////
     
    void ApplyScript::setLink(const QString & data) 
    {   
     qDebug()<< "data "<< data;   
     m_data.push_back(data) ;  
    }
    QVector <QString>  & ApplyScript::getLink( ) 
    {       
        return m_data;     
    }
    mais j'ai pas arriver à récuperer leur resultats d'execution , vous pouvez m'aider ??
    par exemple j'ai la fonction javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <script type="text/javascript">
    function google() {
    var a ="http://";
    var b="www.google.com" ;
    window.location.href = a+b ;   
     }
    </script>
    j'ai recuperer le nom de fonction "google()" puis je l'ai executé par
    "QVariant vrr = f->evaluateJavaScript(ss);"
    mais comment je pourais recuperer son resultat d'execution dans ce cas c'est
    un url qui égale à "http://www.google.com".

    merci d'avance pour tout aide ,

  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
    QVariant QWebFrame::evaluateJavaScript ( const QString & scriptSource )
    Surement en récupérant le résultat et en le convertissant au bon format

  3. #3
    Membre confirmé Avatar de GoldenEyes
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    Surement en récupérant le résultat et en le convertissant au bon format
    merci pour la reponse ,

    vous voulez dire que le resultat est dans un QVariant ?

    merci d'avance pour tout aide ,

  4. #4
    Membre confirmé Avatar de GoldenEyes
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    salut ,
    j'ai fait ceci pour recuperer la valeur de QVariant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    QVariant vrr = f->evaluateJavaScript(ss);
     QString reshtml = vrr.value<QString>();
    qDebug() << valeur ===  << reshtml ;
    mais il m'affiche valeur === "" ?
    merci d'avance pour tout aide ,

Discussions similaires

  1. Réponses: 7
    Dernier message: 30/06/2005, 10h06
  2. Réponses: 1
    Dernier message: 28/06/2005, 09h15
  3. récupérer le résultat d'une requete
    Par sheira dans le forum ASP
    Réponses: 3
    Dernier message: 03/12/2004, 11h04
  4. [C#] Récupérer le résultat d'une procédure stockée
    Par fabrice1596 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/10/2004, 13h45
  5. Réponses: 5
    Dernier message: 05/10/2004, 13h05

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