COMATE et clic sur bouton image [Résolu]
Publié : mar. 17/févr./2009 11:20
Bonjour à tous
Je suis en train d'utiliser le splendid PBI COMATE du grand SROD
Dans lequel il a ajouté une fonction d'execution de code Javascript
Ca marche nikel avec google parce que ce sont des boutons traditionels.
Mais avec une page d'identification que j'essaye d'ouvrir, bah ça marche pas parce que le bouton est une image
Voici le bijoux COMATE
Je pourrais faire la methode "document.myform.submit()" qui marche parce qu'il y a qu'un seul bouton
Mais je me suis posé la question comment je ferais avec plusieurs boutons ????
Donc j'aimerais pouvoir simuler un clic sur une image comme je le fais sur un bouton classic.
Alors j'ai posé la question sur un forum javascript, et la reponse est encore plus compliquée que la question
J'vous la donne "emile"
Et la reponse aussi claire que la premiere m'a pas fait avancer d'un "yota"
Voici la page que je veux ouvrir
Merci beaucoup de votre aide
J'ai pas encore demandé sur le forum US parceque si je rajoute encore l'anglais .....
Je suis en train d'utiliser le splendid PBI COMATE du grand SROD

Dans lequel il a ajouté une fonction d'execution de code Javascript
Ca marche nikel avec google parce que ce sont des boutons traditionels.
Mais avec une page d'identification que j'essaye d'ouvrir, bah ça marche pas parce que le bouton est une image

Voici le bijoux COMATE
Code : Tout sélectionner
IncludePath ".."
XIncludeFile "COMate.pbi"
Define.COMateObject WebObject
Procedure.i ExecuteJavaScript(Gadget, command$)
Protected browser.COMateObject, documentDispatch.COMateObject, script.COMateObject
Protected result
browser = COMate_WrapCOMObject(GetWindowLong_(GadgetID(gadget), #GWL_USERDATA))
If browser
documentDispatch = browser\GetObjectProperty("Document")
If documentDispatch
script = documentDispatch\GetObjectProperty("script")
If script
result = script\Invoke("eval('" + command$ + "')")
script\release()
EndIf
documentDispatch\Release()
EndIf
browser\Release()
EndIf
ProcedureReturn result
EndProcedure
If OpenWindow(0, 10000, 0, 0, 0, "WebGadget", #PB_Window_SystemMenu|#PB_Window_Maximize)
WebGadget(0, 0, 0, WindowWidth(0)+50,WindowHeight(0)-100, "http://www.google.fr/")
ButtonGadget(1,50,WindowHeight(0)-50,150,25,"Fill")
ButtonGadget(2,250,WindowHeight(0)-50,150,25,"Send")
Repeat
Event = WaitWindowEvent();
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1
xMessage$ = "Hello from PB :)"
ExecuteJavaScript(0,"document.all.q.value=" + Chr(34) + xMessage$ + Chr(34))
Case 2
ExecuteJavaScript(0,"document.all.btnG.click()")
EndSelect
Case #PB_Event_CloseWindow
Break
EndSelect
Until GetAsyncKeyState_(#VK_ESCAPE)
EndIf
Mais je me suis posé la question comment je ferais avec plusieurs boutons ????
Donc j'aimerais pouvoir simuler un clic sur une image comme je le fais sur un bouton classic.
Alors j'ai posé la question sur un forum javascript, et la reponse est encore plus compliquée que la question

J'vous la donne "emile"
Alors je lui ai demandé ce qu'etais un "hidden"Space Frog a écrit :un bouton image se comporte comme un bouton submit au nioveau de la soumission du formulaire et tu ne pourras pas faire autremetn que de mettre une valeur dynamiquement dans un input hidden qui te permettra de savoir quel bouton image tu as emulé ...
Et la reponse aussi claire que la premiere m'a pas fait avancer d'un "yota"

Alors si "quinquin" a lu le dictionnaire de javascript en entier et que pour lui c'est clair comme de l'eau de roche.....et bin si y pouvait me donner juste un verre de cette eau......parce que KCC il a drolement soifSpace Frog a écrit :un element de type hidden dans le form n'est pas visible mais est transmis avec les autres données du formulaire ...
Code :
<input type="hidden" name="origine" value="données cachées" id="orignie" />il te suffit de renseigner dynamiquement cet element:
Code :
document.getElementById('origine').value="image1"ainsi coté sreveur tu recupères :
Code :
$_POST['origine']

Voici la page que je veux ouvrir
Code : Tout sélectionner
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="shortcut icon" href="/images/icone.ico">
<script language="javascript">
if (document.layers) {
document.write("<link rel="stylesheet" type="text/css" href="/styles/style.css">");
} else {
document.write("<link rel="stylesheet" type="text/css" href="/styles/style.css">");
}
</script>
<script language='javascript'>
history.forward();
</script>
</head>
<body class="login" >
<form action="/login" method="post" name="myform">
<table width="450">
<tr>
<td class="ariane">
<div class="arianeModule">
Authentification
</div>
</td>
</tr>
<tr>
<td>
<table width="100%">
<tr>
<td width="10" height="10"><img src="/images/bloc_a_hg.gif" width="10" height="10"></td>
<td height="10" bgcolor="#B9C1ED"><img src="/images/pix.gif" width="1" height="1"></td>
<td width="10" height="10"><img src="/images/bloc_a_hd.gif" width="10" height="10"></td>
</tr>
</table>
</td>
</tr>
<tr class="bandeau">
<td class="erreur">
</td>
</tr>
<tr>
<td>
<table width="100%" class="bandeau">
<tr>
<td class="premiere">
Identifiant :
</td>
<td>
<input name="login" type="text" class="input" size="30" />
</td>
</tr>
<tr>
<td class="premiere">
Mot de passe :
</td>
<td>
<input name="password" type="password" class="input" size="30" />
</td>
</tr>
<tr>
<td class="premiere">
Portail :
</td>
<td>
<select name="portail" class="input" />
<option value="ENC">
Programmation et Pilotage des Interventions
</option>
<option value="PIL">
Administration et Suivi d'Activité
</option>
</select>
</td>
</tr>
</table>
</td>
</tr>
<tr class="bandeau">
<td class="actions">
<input type="image" src="/images/bt_valider_bleu1024.gif" value="login" />
</td>
</tr>
<tr>
<td>
<table width="100%">
<tr>
<td width="10" height="10"><img src="/images/bloc_a_bg.gif" width="10" height="10"></td>
<td height="10" bgcolor="#B9C1ED"><img src="/images/pix.gif" width="1" height="1"></td>
<td width="10" height="10"><img src="/images/bloc_a_bd.gif" width="10" height="10"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="erreur">
</td>
</tr>
</table>
</form>
<script language="JavaScript">document.myform.login.focus();</script>
</body>
</html>
J'ai pas encore demandé sur le forum US parceque si je rajoute encore l'anglais .....
