salut ,
merci pour la reponse ,
mais ce n'est pas exactement mon probleme je vous explique mieux :
dans "void Webkit::run()" de mon application j'ai appler le slot applyscript2() comme ceci:
1 2
|
connect(&v, SIGNAL(loadFinished(bool)), this, SLOT(applyscript2())); |
ou v est webview qui contient ces deux fonctions javascript :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
<script type="text/javascript">
function page2() {
//var cible = window.prompt("Votre URI souhaitée:","http://www.google.com");
var a ="http://";
var b="www.google.com" ;
window.location.href = a+b ;
}
</script>
<script type="text/javascript">
function page1() {
//var cible = window.prompt("Votre URI souhaitée:","http://www.google.com");
var a ="http";
var b="://www.hotmail.com" ;
window.location.href = a+b ;
}
</script> |
dans applyscript2() j'ai fait l'evaluation d'un script "onclick.js" qui fait l'extraction des noms de fonction javascript
dans ce cas c'est page1() et page2()
puis j'ai evaluer un autre script "ss" qui permet d'executer ces deux fonctions
le probleme c'est qu'il a executer la premiere c'est la fonction page1() qui méne vere la page google () ;
puis je veux executer la deuxieme fonction page2() alors j'ai fait v.back(), dans ce cas il va réexecuter
connect(&v, SIGNAL(loadFinished(bool)), this, SLOT(applyscript2()));
donc il va refaire l'execution de applyscript2() de 0 (toujour executer que la premiere fonction page1()) , j'ai fait un tableau pour sevegarder les noms de fonctions et j'ai utliser append
mais toujour il va réexecuter applyscript2() à zéro remplire le tableau à zéro !!
depuis la semaine passer que je cherche un moyen mais j'ai pas arriver a trouver une bonne solution ?
vous pouver m'aider ?
merci d'avance pour tout aide ,
voila la fonction applyscript2()
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
|
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 vr = f->evaluateJavaScript(output2);
fct_script =dataScript->getLink();
qDebug()<< "fonction size" <<fct_script.size();
QString contenu_fct =fct_script[j];
fct_script_global.append(fct_script[j]);
QString ss=QString("var f='window.addEventListener(\"load\",'+%1+', false);';"
"var ff='window.attachEvent(\"onload\",%1);';"
" if (window.addEventListener) {"
"eval(f);"
"} else if (document.addEventListener) { "
"eval(f);"
"} else if (window.attachEvent) {"
"eval(ff);"
"}").arg(contenu_fct);
QVariant vrr = f->evaluateJavaScript(ss);
if (j< fct_script.size()) j++;
} |
Partager