IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

[HTA] Définir event dynamiquement


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut [HTA] Définir event dynamiquement
    Bonjour à tous,

    Je pêche un peu sur le fait d'ajouter dynamiquement un event sur un input text.

    Au départ dans mon code HTML l'input est déjà défini avec un event onclick :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" style="width:250px;" id="MachineObjectOU" name="MachineObjectOU" onclick="javascript:TogglePopupBox('MachineObjectOU');" onkeydown="javascript:TogglePopupBox('MachineObjectOU');" onpropertychange="javascript:ValidateOU();" />
    Cela fonctionne très bien.

    Maintenant j'ai besoin à un moment donné de virer l'event dans un cas précis, mais aussi de le remettre dans un autre cas.

    Donc pour le virer je fais tout simplement côté VBS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MachineObjectOU.onclick = ""
    Mais c'est pour le redéfinir que ça se corse
    J'ai essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MachineObjectOU.onclick = "TogglePopupBox('MachineObjectOU');"
    Ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MachineObjectOU.onclick = "function onclick() { TogglePopupBox('MachineObjectOU'); }"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MachineObjectOU.onclick = "function () { TogglePopupBox('MachineObjectOU'); }"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MachineObjectOU.onclick = "javascript:function () { TogglePopupBox('MachineObjectOU'); }"
    Et ça ne fonctionne pas...

    J'ai trouvé ceci qui donne satisfaction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim sOUClick
    If sOUClick = "" Then
        Set sOUClick = MachineObjectOU.onclick
    End If
    Puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set MachineObjectOU.onclick = sOUClick
    Mais bon cela oblige d'utiliser une var de stockage ce qui n'est pas top

    Ce qui m'étonne aussi c'est que VarType de sOUClick donne 8 donc c'est bien un string qui contient function onclick() { TogglePopupBox('MachineObjectOU'); }
    Mais si je ne fais pas de Set à l'enregistrement et à la redéfinition de l'event, cela ne fonctionne pas....
    Ce n'est pourtant pas un object.

    Si quelqu'un à une idée je suis preneur

    Merci à vous !

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    si je comprends bien ton imput a un event et tu veux qu'il soit supprimé a un momment donné c'est bien ca
    si c'est oui il faut sortir du code inline"onclick=...." et passer par addeventlistener ou attachevent(IE 7,8)au load du document mais cela c'est en JavaScript en vbs je sais pas. je suppose que oui on doit pouvoir le faire

    javascript
    ajouter un evenement
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("toto").addEventListener("click",nom de la fonction ,false);
    suprimer l'evenement
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var myinput=document.getElementsById("toto")
    myinput.removeEventListener("click",nom de la fonction", false);
    je suppose que la syntaxe doit a peine changer en vbs ( je n'ai jamais essayé) mais on doit pouvoir

    voila voila

    si ton Hta fonctionnera en mode IE old(7,8,et lme 9) des fois on utilisera attachevents mais a la place de "click" on mettre "onclick"
    je te laisse faire tes recherche sur ce point
    pour te familiariser avec ca
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Hum bof bof, j'y ai pensé mais ce n'est pas ce que je veux justement.
    Le but du truc c'est que ce soit full dynamique et que rien ne soit liés au noms des contrôles...

    Alors avec un case ou if enchaînés ce n'est pas trop le cas du coup

    Encore une fois, je suis dans un environnement spécifique (WinPE) sur quelque chose de limité un exe mshta et de l'hybride HTA avec un VBS et un XML décomposé.
    Le xml contenant un bout d'HTML mais je n'ai pas le body juste le contenu d'accessible.
    Pas question d'ajouter JQuery ou autre sur cette partie la, il faut rester relativement simple.

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Le but du truc c'est que ce soit full dynamique et que rien ne soit liés au noms des contrôles...
    et alors!!???

    tu a les atribs fonction dynamique et ton souhait sur l'object en argument je te comprends plus trop la

    c'est pas pire qu'en dur en inline(html) hein!!....

    après je comprends pas ne connaissant pas l'intégralité du programme et du cahier des charges
    xml/hml/vbs/pas vbs/hta
    je vois pas ou est ton soucis
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Merci Patrick pour ta réponse.
    Mais mon problème est que dans l'exemple indiqué ma fonction qui est dans le onclick au départ prends un paramétre.
    Hors avec le addEvent justement on ne peux pas le définir.

    D'où mon passage par un objet de stockage pour le moment.
    Mais j'aimerais plus propre

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re

    je vais potasser cela pour les arguments
    en attendant dans un hta le addeventlistener n'a pas lair de fonctionner on le fait en mode vieux internet alors avec attachevent et detachevent c'est tou

    voila un exemple simple
    2 input bouton faisant la bascule de l'un a l'autre et vis et versa
    quand tu clique sur 1 des deux tu ne peux plus cliquer sur celui ci tu est obligé de cliquer sur l'autre pour lui rendre son événement
    copie dans un text et sauve en .hta

    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
    <!doctype html>
    <html lang="fr">
     
    <head>
     <meta charset="utf-8">
      <title>patrick exemple pour cerede2000 </title>
    <meta http-equiv="X-UA-Compatible" content="IE=10"> 
    <script  type= "text/javascript">
    function ajoutev(){
    var b1=document.getElementById("B1");
    var b2=document.getElementById("B2");
    //b1.addEventListener('Click',fonct1,false);// fonctionne pas en hta donc 
    //b2.addEventListener('Click',fonct2,false);
    //on le fait a l'ancienne 
    b1.attachEvent("onclick", fonct1);
    b2.attachEvent("onclick", fonct2);
    }
    function fonct1(event){
    alert("bouton1 si tu reclique dessus il marchera pas il faut recliquer le bouton 2");
    document.getElementById("B1").detachEvent('onclick',fonct1);
    document.getElementById("B2").attachEvent('onclick',fonct2);
    }
    function fonct2(event){
    alert("bouton2 si tu reclique dessus il marchera pas il faut recliquer le bouton 1");
    document.getElementById("B2").detachEvent('onclick',fonct2);
    document.getElementById("B1").attachEvent('onclick',fonct1);
    }
     
    </script> 
    </head>
    <body>
    <input type="button" id="B1" value="bouton1" />
    <input type="button" id="B2" value="bouton2" />
    <script> ajoutev(); </script>
    </body> 
    </html>
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    je ne vois pas ou est ton soucis

    tu a plusieurs évènement qui appel la même fonction utilise alors event.target dans ta fonction
    et au lieu de mettre tes appels online, tu attachevent et detachevent pour supprimer les evenement
    non je vois vraiment pas

    je t'ai montré comment on attribuais une fonction a un évènement dynamiquement
    reste dans ta fonction avec event target dans if else ou même un switch en javascript qui correspond a un select case en vba

    donc recherche sur event.target ,switch

    si tu met tes evenement online(dans le code html) tu ne peut les supprimer


    et même j'ai fait une recherche tout a l'heure et j'ai trouvé des exemples de addevenlistener avec arguments

    au lieu du nom de la fonction en 2d position dans le code tu met un truc du genre
    addevenlistener(evenement,function(){nomdetafoncton(arguments)},false);

    a traduire en vbs bien entendu quoi que le hta reçois très bien le javascript
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    allez exemple avec attachevent + arguments
    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
    <!doctype html>
    <html lang="fr">
     
    <head>
     <meta charset="utf-8">
      <title>patrick WYSIWYG html </title>
    <meta http-equiv="X-UA-Compatible" content="IE=10"> 
    <script  type= "text/javascript">
    function ajoutev(){
    document.getElementById("MachineObjectOU").attachEvent("onclick",function() { return TogglePopupBox('clickMachineObjectOU'); });   
    document.getElementById("MachineObjectOU").attachEvent("onkeydown",function() { return TogglePopupBox('keydownMachineObjectOU'); });   
    document.getElementById("MachineObjectOU").attachEvent("onpropertychange",function() { return ValidateOU('propchangeMachineObjectOU'); });   
    }
    function TogglePopupBox(argument){
    alert(argument);
    }
    function ValidateOU(argument){
    alert(argument);
    }
    </script> 
    </head>
    <body>
    <input type="text" style="width:250px;" id="MachineObjectOU" name="MachineObjectOU" />
    <script> ajoutev(); </script>
    </body> 
    </html>
    regarde bien les 3 lignes dans ajoutev
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Heu....
    Tu n'as pas tout lu

    HTA classique ok chez moi aussi, mais environnement MDT ko !

    C'est un mix currieux pas totalement HTA, du coup JS impossible.

  10. #10
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Il y a un truc qui doit m'échapper mais je ne vois pas quoi...

    En sachant que je viens de faire un test classique, pour appeler une fonction JS ne semble pas fonctionne dans cet environnement
    Test HTA classique :
    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
    <html>
    <head>
    <title>Untitled</title>
    <script language="VBScript">
      Sub vbSub()
        MsgBox "Hello depuis vbSub"
      End Sub
    </script>
    <script language="JavaScript" type="text/javascript">
      function jsFunction() {
        alert('Hello depuis jsFunction');
        vbSub();
      }
    </script>
    </head>
    <body>
      <input type="button" value="Go !" onclick="javascript:jsFunction();" />
    </body>
    </html>
    Si je fais stricto senso la même chose dans mon mix XML/VBS j'ai une erreur m'indiquant que la fonction JS n'est pas trouvée.

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    heu... qui quoi comment????
    ca marche pas tu dis

    attention la moindre erreur de syntaxe en JS NE PARDONNE PAS ET BLOQUE TOUT LE FICHIER
    le moindre ";" manquant en fin de ligne et c'est out!!!!!
    CHEZ MOI SUR 3 PC AVEC WindoW DIFFERENTs CA MATCH
    et ce qui est marrant c'est que getref ouste!!!!!
    Nom : demo.gif
Affichages : 152
Taille : 68,8 Ko
    t a tout a gagner en js
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Great !!!
    En fait il faut mettre function() en direct et pas en string
    Tip top, je vais tester ça !

    Merci Patrick

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    non c'est pas tout a fait ca

    en fait normalement on fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    object.attachevent(evenement,nom de la fonction)
    pour le faire avec des arguments il faut faire comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    object.attachevent(evenement,function(){nom de la fonction(argument1,argument2,etc..);})
    en gros une fonction dans une fonction

    en JavaScript c'est ce que l'on appelle les fonctions anonymes

    dans le cas présent la fonction anonyme function(){vrai fonction.}fait appel a la vrai fonction

    ces fonctions anonyme peuvent acceuilir du code aussi

    exemple sinmple qui me sert très souvent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    object.attachevent(evenement,function(){alert("Bonjour Cérédé 2000");})
    autrement dit tout le code qui se trouve dans la vrai fonction peut etre placé dans la fonction anonyme

    voila maintenant tu sais comment on attribue une fonction a un évènement

    pour le supprimer c'est comme la méthode simple de attachevent mais sans le arguments

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    object.detachevent(évènement,vrai nom de la fonction);
    en ce qui concerne ce point j'ai tout dis

    après il y a plus complexe mais déjà métrise cela et on verra
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    MDT => Microsoft Deployment Toolkit
    Permet de créer des masters pour OS Windows.

    Et dans la toute première partie il y a des Wizard qu'on oeux customiser voir creer de toute pièce.
    Malheureusement très peu voir pas de doc chez MS à ce sujet.

    Il faut pas mal gratter et fouiller dans les wizards existant afin de comprendre plus en details le fonctionnement et les fonctions mises a dispo par MS.

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour cérédé

    a regarder te reponse on en perd son latin des fois
    post 22
    Hum bof bof, j'y ai pensé mais ce n'est pas ce que je veux justement.
    Le but du truc c'est que ce soit full dynamique et que rien ne soit liés au noms des contrôles...
    heu........

    ou c'est que l'on peut trouver ce tool kit je vais aller y faire un tour
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #16
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Je maîtrise bien ce concept en JS, c'est le VBS qui me posait question, je pensais pas qu'on pouvait coller du code JS like direct dedans.

    Qu'entends tu par plus complexe ?
    Ca m'interesse aussi

    EDIT :
    Par contre je n'avais pas fait attention mais ça ne fonctionne pas côté VBS !
    C'est bien là mon problème.....
    J'ai absolument besoin de le faire côté VBS et non pas côté JS.

    Donc pour le moment seule ma méthode de stocker l'event existant dans une variable et de le restaurer par la suite fonctionne
    Il doit bien y avoir un moyen de faire ça en VBS non ?

  17. #17
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Je maîtrise bien ce concept en JS, c'est le VBS qui me posait question, je pensais pas qu'on pouvait coller du code JS like direct dedans.

    Qu'entends tu par plus complexe ?
    Ca m'intéresse aussi
    il y a les classe aussi et on peut attribuer une classe a une série d'élément avec addeventlistener

    bon reprenons des le départ car vu l'exemple j'ai l'impression que cette variable est fixe puisque entre guillemets dans l'appel
    alors sincèrement pourquoi ne pas se servir de l'attribue data d'un élément comme ca ca bouge plus

    maintenant si cette variable doit évoluer alors c'est plus complexe sans "var=..."en JS ou "dim myvar..."en vbs

    je vais essayer de convertir le code attachevent en vbs on va voir si c'est possible


    j'oubliais aussi on peut revenir en DOM1 en vbs je crois que l'on peut modifier les evenement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element.onclick=function(){tafonction.......};
    changeable a volonté

    mais dans ce cas dans le code html des éléments tu verra les appels comme si tu les avais écrit en dur
    je vais essayer de retrouver mes vieux hta avant je fonctionnais comme ca mais maintenant je préfère largement le js plus puissant et plus malléable même dans un hta
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  18. #18
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Citation Envoyé par cerede2000 Voir le message
    ..............
    EDIT :
    Par contre je n'avais pas fait attention mais ça ne fonctionne pas côté VBS !
    C'est bien là mon problème.....
    J'ai absolument besoin de le faire côté VBS et non pas côté JS.
    ...........
    Peut être [HTA] Ajout/suppression dynamique d'images pourrait il t'inspirer (lignes 47 48 et 49).
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour céréeé 2000

    bon j'ai pris ma machine a voyager dans le temps et je suis aller voir au temps ou les homme marchait encore a quatre pattes

    voila un exemple d'attribution d'évènement strictement en vbs (pas de JS) comme tu peux le voir c'est affreux

    et entre nous rien ne t'empêche d'avoir du JS et du VBS dans ton HTA c'est d'ailleurss encore le cas pour pas mal des miens dont je n'ai pas pris le temps de les mettre a jour

    mais bon !! voila préhistoriqement le code en vbs
    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
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
         "http://www.w3.org/TR/html4/strict.dtd">
    <HTML>
    <HEAD>
    <TITLE>A document with SCRIPT</TITLE>
    <META http-equiv="Content-Script-Type" content="text/tcl">
    <script type="text/vbscript" >
    function createevenement()
    document.getElementById("text1").onclick = GetRef("sub1")
    msgbox "evenement créé!!"
    end function 
    sub sub1()
    document.getElementById("text1").onclick = GetRef("sub2")
    msgbox "la sub 1 a été apelée" 
    end sub
    sub sub2()
    document.getElementById("text1").onclick = GetRef("sub1")
    msgbox "la sub2 a été apelée" 
    end sub
    </script> 
    </head>
    <body onload="createevenement"> 
    <input type="text" style="width:250px;" id="text1"  />
     
    </body> 
    </html>
    le passage d'argument a la sub est tellement complexe avec cette écriture que je te le propose même pas, même moi

    je le comprends plus tellement hahahaha

    c'était du temps ou on portait des pantalons a pattes d'eph et des cols jago(a la mike brant)

    dieu merci je sui ne bien plus tard
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #20
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    J'utilise déjà le getRef pour des events mais mon problème est toujours le même...
    Les arguments
    Si tu as un code qui permet de le faire je suis totalement preneur !

Discussions similaires

  1. [Débutant] changer event dynamiquement
    Par mapmip dans le forum VB.NET
    Réponses: 4
    Dernier message: 19/07/2011, 20h35
  2. Réponses: 4
    Dernier message: 08/02/2010, 23h10
  3. Réponses: 1
    Dernier message: 05/02/2010, 13h10
  4. définir margin dynamiquement ?
    Par thibotus01 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 22/07/2009, 00h39
  5. Ajouter un event dynamiquement pour iexplorer
    Par infostars dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 31/03/2009, 16h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo