salut ,,
je veux construire l'arbre Dom d'une page HTML sans passer par le validateur Tidy-HTML alors j'ai penser a utiliser un script que je vais l'appliquer a la page web lorsque celle ci est chargé,
pour cela j'ai utiliser evaluateJavaScript (); ou en le donne un QString comme paramettre ce string correspond au code juavascript et retourne le resultat dans Qvariant pour cela j'ai commancer a faire ce petit test qui va afficher la date sur ma page web:
lorsque la page web est chargé (loadFinshed) j'ai fait la recuperation de code javascript et j'ai donné comme paramettre a evaluateJavaScript
voila le code :
ou date.html contient script qui affiche la date .
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 void Dom::loadFinished(bool ok) { if (!ok){ printf("failed laodin page "); fflush(stdout);} QVariant vr; QFile filejs ("date.html"); if (!filejs.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug()<< "le fichier xml valide n'existe pas " ; return;} QTextStream outjs(&filejs); QString outputjs = outjs.readAll(); filejs.close(); vr =v.page()->mainFrame()->evaluateJavaScript (outputjs);//(v de type WebView) }
code de date.html:
mais j'ai aucune idee comment je peux voir le resultat de ce script sur ma page web,??
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 <HTML><HEAD> <TITLE> Dernière mise à jour</TITLE> <SCRIPT LANGUAGE="JavaScript"> function Tableau(n){this.lenght=n; return this; } function DateModif() { NomMois=new Tableau(12); NomMois[1]="janvier"; NomMois[2]="février"; NomMois[3]="mars"; NomMois[4]="avril"; NomMois[5]="mai"; NomMois[6]="juin"; NomMois[7]="juillet"; NomMois[8]="août"; NomMois[9]="septembre"; NomMois[10]="octobre"; NomMois[11]="novembre"; NomMois[12]="décembre"; Date=new Date(document.lastModified) var Mois=NomMois[Date.getMonth()+1] var Annee=Date.getFullYear() return Date.getDate()+""+Mois+""+Annee } </SCRIPT> </HEAD> <BODY> Document modifié le <SCRIPT> document.write(DateModif()) </SCRIPT> </BODY></HTML>
j'ai pencer a addToJavaScriptWindowObject ( const QString & name, QObject * object )????,
merci pour tout aide ,,
Partager