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:
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:
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 ,