[VBS] un bouton dans un iframe

un bouton dans un iframe [VBS] - VB/VBA/VBS - Programmation

Marsh Posté le 07-05-2008 à 12:36:16    

Salut
 
Dans un Script VBS, j'appèle une fenêtre IE

Set objExplorer = Wscript.CreateObject("InternetExplorer.Application", "IE_" )


Dans cette fenêtre IE, je crée 3 Frames
 

objExplorer.document.getElementById("FrameHeader" ).contentWindow.document.body.innerHTML = HTMLHeader
objExplorer.document.getElementById("FrameMenu" ).contentWindow.document.body.innerHTML = HTMLMenu
objExplorer.document.getElementById("FrameContent" ).contentWindow.document.body.innerHTML = HTMLContent


 
Dans un des Frames, je positionne mes boutons
 

HTMLMenu = HTMLMenu & "<input id=Test1 type=" & CHR(34) & "button" & CHR(34) & " value=" & CHR(34) & "Click on Me" & CHR(34) & " onClick=Bouton1>"
objExplorer.document.getElementById("FrameMenu" ).contentWindow.document.body.innerHTML = HTMLMenu


et bien sur ...

Sub Bouton1()
 msgbox "quelqu'un a cliqué sur le bouton !"
End Sub


et pis voilà ...
la fenêtre s'affiche, les frames sont remplies ...
les boutons sont visibles ... mais ne déclenchent rien :(
 
Pas Glop  :cry:  
 
Quelqu'un a une idée ?


Message édité par madmartigan le 07-05-2008 à 12:37:20

---------------
Mieux vaut fermer sa gueule et passer pour un con, plutot que de l'ouvrir, et montrer qu'on l'est...
Reply

Marsh Posté le 07-05-2008 à 12:36:16   

Reply

Marsh Posté le 07-05-2008 à 12:38:29    

Elle squatte où ta Sub Bouton1() ? On peut au moins lier un VBS externe à une page ? [:johneh] Ca me semble bizarre. Faudrait que la Sub soit dans la page, dans un <script>

Message cité 1 fois
Message édité par FlorentG le 07-05-2008 à 12:38:52
Reply

Marsh Posté le 07-05-2008 à 13:01:54    

FlorentG a écrit :

Elle squatte où ta Sub Bouton1() ? On peut au moins lier un VBS externe à une page ? [:johneh] Ca me semble bizarre. Faudrait que la Sub soit dans la page, dans un <script>


C'est justement ce que je veux éviter ...
 
Toute la partie HTML doit être générée dynamiquement, et le code se trouver a l'extérieur...
 
voici le code complet :
 

strCurrentPath = Replace(WScript.ScriptFullName, WScript.ScriptName, "" )
 HTMLHeader = "<img src=" & strCurrentPath & "TOP.GIF WIDTH=100%>"
 HTMLMenu = "Ici bientot les menus"
 HTMLContent = "Resultats des fonctions"
 
 strBaseHtml = ""
 strBaseHtml = strBaseHtml & "<HTML><HEAD></HEAD>"
 strBaseHtml = strBaseHtml & "<IFRAME NAME=FrameHeader WIDTH=100% ></IFRAME>"
 strBaseHtml = strBaseHtml & "<IFRAME NAME=FrameMenu  WIDTH=300 ></IFRAME>"
 strBaseHtml = strBaseHtml & "<IFRAME NAME=FrameContent ></IFRAME>"
 strBaseHtml = strBaseHtml & "</HTML>"
 
 
Set objExplorer = Wscript.CreateObject("InternetExplorer.Application", "IE_" )
 objExplorer.Navigate "about:blank"
 objExplorer.ToolBar = 0
 objExplorer.StatusBar = 0
 objExplorer.Width = 1024
 objExplorer.Height = 768
 objExplorer.Left = 0
 objExplorer.Top = 0
 objExplorer.Visible = 1
 objExplorer.Document.Body.InnerHTML = strBaseHtml
 objExplorer.document.getElementById("FrameHeader" ).contentWindow.document.body.innerHTML = HTMLHeader
 objExplorer.document.getElementById("FrameMenu" ).contentWindow.document.body.innerHTML = HTMLMenu
 objExplorer.document.getElementById("FrameContent" ).contentWindow.document.body.innerHTML = HTMLContent
 
HTMLMenu = ""
HTMLMenu = HTMLMenu & "<INPUT TYPE=BUTTON NAME=CMD1 VALUE=testbutton1 ONCLICK=AddNewPc></BR>"
HTMLMenu = HTMLMenu & "<INPUT TYPE=BUTTON NAME=CMD2 VALUE=testbutton2></BR>"
HTMLMenu = HTMLMenu & "<INPUT TYPE=BUTTON NAME=CMD3 VALUE=testbutton3></BR>"
 
HTMLMenu = HTMLMenu & "<input id=Test1 type=" & CHR(34) & "button" & CHR(34) & " value=" & CHR(34) & "Clic on Me" & CHR(34) & " onClick=Button1>"
 
objExplorer.document.getElementById("FrameMenu" ).contentWindow.document.body.innerHTML = HTMLMenu
 
Sub Button1()
 msgbox "quelqu'un a cliqué sur le bouton !"
End Sub

Message cité 1 fois
Message édité par madmartigan le 07-05-2008 à 13:02:19

---------------
Mieux vaut fermer sa gueule et passer pour un con, plutot que de l'ouvrir, et montrer qu'on l'est...
Reply

Marsh Posté le 07-05-2008 à 13:44:14    

madmartigan a écrit :

Toute la partie HTML doit être générée dynamiquement, et le code se trouver a l'extérieur...


Pour des raisons de sécurité, je crois qu'on ne peut "appeller" un script comme ça sans qu'il soit dans le code HTML. Il faut mettre ta fonction Bouton1 dans un autre fichier, et l'appeller explicitement dans l'HTML. Avec une simple balise script. T'aura donc deux fichiers :
 
script.vbs

Code :
  1. strCurrentPath = Replace(WScript.ScriptFullName, WScript.ScriptName, "" )
  2. HTMLHeader = "<img src=" & strCurrentPath & "TOP.GIF WIDTH=100%>"
  3. ......


 
html.vbs

Code :
  1. Sub Button1()
  2. msgbox "quelqu'un a cliqué sur le bouton !"
  3. End Sub


 
Et tu mettera dans ta frame une balise script :

Code :
  1. <script type="text/vbscript" src="file:///C:/..../html.vbs></script>


A voir maintenant si une URL de type file:/// ne pose pas de probs

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed