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 ,