salut tout le monde
svp comment saisir une information dans une page web
par exemple le champ de recherche google
(c++builder xe3)
merci
salut tout le monde
svp comment saisir une information dans une page web
par exemple le champ de recherche google
(c++builder xe3)
merci
Salut
Peut etre çà , pour traiter le script directement
ou ces liens
Code : Sélectionner tout - Visualiser dans une fenêtre à part https://www.google.fr/search?q=developpez.com
http://cpp.developpez.com/faq/bcb/?p...plirformulaire
http://cpp.developpez.com/faq/bcb/?p...webbrowserpost
http://cpp.developpez.com/faq/bcb/?p...plirformulaire
Si j'ai le code suivant
Comment remplir le champ de saisie Edit1_web
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <html><head> </head><body> Edit <INPUT TYPE="TEXT" NAME="Edit1_web"/> </body></html>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 WideString url = "about:<html><head></head><body>"; url += "<Form name=\"Test\">"; url += "Edit<INPUT TYPE=\"TEXT\" NAME=\"Edit1_web\">"; CppWebBrowser1->Navigate( url , 0, 0, 0, 0);cette erreur sous bcb6 , 7 64 ou 32 , ie10
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 void __fastcall TForm1::CppWebBrowser1NavigateComplete2(TObject *Sender, LPDISPATCH pDisp, Variant *URL) { // Variant vDocument = CppWebBrowser1->ControlInterface->Document; if (((IDispatch *)vDocument) != NULL) { Variant vForms = vDocument.OlePropertyGet("Forms"); Variant vForm = vForms.OleFunction("NamedItem","Test"); Variant vContent = vForm.OlePropertyGet("All"); Variant vMyField = vContent.OleFunction("NamedItem","Edit1_web"); vMyField.OlePropertySet("Value","UnLogin"); // vForm.OleProcedure("Submit"); } }
IsBound() @ c\bcb\emulvcl\utilcls.h/4249
lors de l’exécution j'ai l'erreur suivante :
Assertion failed: Isbound(),file
C:\Builds\Tp\Include\Windows\rtl\utilcls.h,line3563
cette erreur est dans ligne :
Variant vContent = vForms.OlePropertyGet("All");
oui je sais
tu as ie10 ?
Quelqun aurait une autre version d ie ?
et si tu construis ta page dans l appli , çà fonctionne pas ?
non non ça ne fonctionne pas
Je devais avoir envie de nems hier , lol
devient donc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2url += "<Form neme=\"Test\">";
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2url += "<Form name=\"Test\">";
oui j'ai remarquer ça mais ne fonctionne pas
merci ça marche parfaitement
avant de mattre resolu
si par exemple dans la page j'ai un tchek box ou bien un combo-box
comment les manipuler
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 WideString url = "about:<html><head></head><body>"; url += "<Form name=\"Test\">"; url += "<input type=\"checkbox\" name=\"CB\" />"; url += "Edit<INPUT TYPE=\"TEXT\" NAME=\"Edit1_web\">";
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Variant vMyCB = vContent.OleFunction("NamedItem","CB"); vMyCB.OlePropertySet("checked","checked");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 WideString url = "about:<html><head></head><body>"; url += "<Form name=\"Test\">"; url += "<input type=\"checkbox\" name=\"CB\" />"; url += " \;"; url += "<select name=\"list\">"; url += "<option value=\"1\">Option 1</option> "; url += "<option value=\"2\">Option 2</option> "; url += "<option value=\"3\">Option 3</option> "; url += "</select>"; url += " \;"; url += "Edit<INPUT TYPE=\"TEXT\" NAME=\"Edit1_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 Variant vDocument = CppWebBrowser1->ControlInterface->Document; if (((IDispatch *)vDocument) != NULL) { Variant vForms = vDocument.OlePropertyGet("Forms"); Variant vForm = vForms.OleFunction("NamedItem","Test"); Variant vContent = vForm.OlePropertyGet("All"); Variant vMyField = vContent.OleFunction("NamedItem","Edit1_web"); vMyField.OlePropertySet("Value","UnLogin"); Variant vMyCB = vContent.OleFunction("NamedItem","CB"); vMyCB.OlePropertySet("checked","checked"); Variant vMyList = vContent.OleFunction("NamedItem","list"); vMyList.OlePropertySet("value","3"); // vForm.OleProcedure("Submit"); }
tu peut essai ça pour moi stp
avec le code:
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 <html><head> <script language="JavaScript"> function chk_len(event) { var admin = document.tool_admin; var password = admin.uiViewTools_Password.value; if (password.length >= 31) { } </script> </head><body> <Form name="Test"> <INPUT TYPE="PASSWORD" NAME="uiViewTools_Password" SIZE="50" MAXLENGTH="31" VALUE="" onKeyPress="chk_len(event)"> </body></html>
la même erreur se produit (Assertion failed: Isbound(),file
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 void __fastcall TForm1::CppWebBrowser1NavigateComplete2(TObject *Sender, LPDISPATCH pDisp, Variant *URL) { // Variant vDocument = CppWebBrowser1->ControlInterface->Document; if (((IDispatch *)vDocument) != NULL) { Variant vForms = vDocument.OlePropertyGet("Forms"); Variant vForm = vForms.OleFunction("NamedItem","Test"); Variant vContent = vForm.OlePropertyGet("All"); Variant vMyField = vContent.OleFunction("NamedItem","uiViewTools_Password"); vMyField.OlePropertySet("Value","UnLogin"); } }
C:\Builds\Tp\Include\Windows\rtl\utilcls.h,line3563)
Car dans le code html il existe un script (java script)
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 WideString url ; url = "about:<html><head>"; url += "<script language=\"JavaScript\">"; url += "function chk_len(event)"; url += "{"; url += "var admin = document.tool_admin;"; url += "var password = admin.uiViewTools_Password.value;"; url += "if (password.length >= 31) {"; url += "}"; url += "</script>"; url += "</head><body>"; url += "<Form name=\"Test\">"; url += "<INPUT TYPE=\"PASSWORD\" NAME=\"uiViewTools_Password\" SIZE=\"50\""; url += "MAXLENGTH=\"31\" VALUE=\"\" onKeyPress=\"chk_len(event)\">"; url += "</body></html>"; CppWebBrowser1->Navigate( url , 0, 0, 0, 0);
executer dans un bouton , çà fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Variant vDocument = CppWebBrowser1->ControlInterface->Document; if (((IDispatch *)vDocument) != NULL) { Variant vForms = vDocument.OlePropertyGet("Forms"); Variant vForm = vForms.OleFunction("NamedItem","Test"); Variant vContent = vForm.OlePropertyGet("All"); Variant vMyField = vContent.OleFunction("NamedItem","uiViewTools_Password"); vMyField.OlePropertySet("Value","UnLogin"); }
dans l evenement NavigateComplete2 , non
dans l evenement DocumentComplete , oui mais il y a une fenetre pour demander si on veut executer le code javascript .
Pour la fermer automatiquement , ajoutes un timer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void __fastcall TForm1::Timer1Timer(TObject *Sender) { HWND hwnd; if (hwnd = FindWindow(NULL,"Erreur de script") )// != NULL) { SetForegroundWindow(hwnd); ::Sleep(1000); keybd_event(0x0d,0,0,0); keybd_event(0x0d,0,KEYEVENTF_KEYUP,0); } }
merci cedni
la fenêtre de javascript s’exécute car
tu as oublier dans la ligne 10 un }
j'ai un buttons dans le code html comment l'exécuter ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part <INPUT TYPE="BUTTON" NAME="SaveBtn" VALUE="SAVE" onClick="uiSave()">
tu veux soumettre un formulaire ?
Pk pas remplir l url avec les variables ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager