Donnez vie à vos documents numériques !
 

Attribution de script sur bouton. – RÉSOLU

abracadabraPDF Forums PDF – Général Attribution de script sur bouton. – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44305
    nekosan3
    Participant

    Bonjour,

    Je ne m’y connais pas trop en javascript mais j’essaie toujours de me débrouiller avec les bouts de codes du forum, mais là je ne trouve pas la solution à mon problème :
    J’ai un bouton qui attribut un script(qui se trouve en script de document) à plusieurs boutons qui porte le même nom mais sur des pages différente d’un PDF, ça fonctionne, le script est bien attribué mais il l’attribut aussi à deux autres boutons même si le nom est différent : par exemple dans le code suivant le script activeDLOAD_RefA sera bien attribué aux boutons BTN_DL_fiche_A
    mais il l’attribuera aussi le script au bouton BTN_DL_fiche_A1 et au bouton BTN_DL_fiche_Ab alors que le nom est peu mais différent   

    //si le nom commence par  “BTN_DL_fiche_A” on lui associe le script
    if(nomDeChamp.substring(0,14)== “BTN_DL_fiche_A”& this.getField(nomDeChamp).type==”button”)
    {
    console.println(“Ajout du script au bouton “+nomDeChamp)
    this.getField(nomDeChamp).setAction(“MouseUp”,”activeDLOAD_RefA()”);
    indexBouton=indexBouton+1;

    }

    Voici le script activeDLOAD_RefA :
    function activeDLOAD_RefA()
    {
    this.exportDataObject({cName: “Fiche_Ref_A_R.pdf”, nLaunch: 2});
    }

    Aurait t-il un moyen pour que le script soit attribuer qu’aux boutons voulus ?

    Merci d’avance pour les réponses. 

Affichage de 13 réponses de 1 à 13 (sur un total de 13)
  • Auteur
    Réponses
  • #53780
    Merlin
    Maître des clés

    Salut,

    Je crois que la réponse est dans la question : la condition est que la chaine de caractère BTN_DL_fiche_A soit présente dans le nom du champ, mais ce n’est pas limitatif.
    Et BTN_DL_fiche_A1 et BTN_DL_fiche_Ab contiennent cette chaine de caractères.

    Donc la logique est sauve.

    Pour que le script ne s’y applique pas il faut que les champs aient un nom différent de la (sous)chaine de caractères BTN_DL_fiche_A.

    :Smiley01:

    #53781
    Merlin
    Maître des clés

    PS : d’autre part on dirait qu’il y a une erreur sur cette ligne, il manque un “&” :

    if(nomDeChamp.substring(0,14)== “BTN_DL_fiche_A”&& this.getField(nomDeChamp).type==”button”)

    :bonjour:

    #53782
    nekosan3
    Participant

    Eh oui //si le nom commence par  :Ooops:
    bon ça va je vais renommer les 5 boutons qui me cause des soucis  :geek:

    Et merci Merlin pour la rectif du code !  :bonjour:

    On apprend plein de chose sur ce forum  :Smiley03: merci

    #53783
    alex
    Participant

    Petite correction logique:
    //si le nom commence par  “BTN_DL_fiche_A” et si sa longueur est strictement de 14 digits,on lui associe le script
          if(nomDeChamp.substring(0,14)== “BTN_DL_fiche_A”& this.getField(nomDeChamp).type==”button”&nomDeChamp.length==14)

    Non ?

    #53784
    Merlin
    Maître des clés

    Effectivement il y a 2 méthodes, soit modifier les noms de champs, soit modifier le script…
    Mais pour cette dernière je ne savais pas faire !
    :bonjour:

    #53785
    nekosan3
    Participant

    Merci Alex pour ce complément de script (dont tu en es l’origine…).
    Je te réitère mes remerciements.  :soleil: 

    #53786
    Merlin
    Maître des clés

    Je vois qu’Alex ne met qu’un seul & dans son script lui aussi…

    Quelle est la différence entre & et && ?
    :doute:

    #53787
    alex
    Participant

    Pour clore le débat par un script plus général:
    //Definir le début de nom recherché:
    EnTete=”BTN_DL_fiche_A”;
    //Utiliser la syntaxe  suivante pour la recherche
    if(nomDeChamp.substring(0,EnTete.length)==EnTete)

    Pour le reste:
    l’operation
    x && y
    est la même que
    x & y
    sauf que si x est false, l’évaluation de y ne sera pas faite puisque le résultat sera false dans tous les cas. Bof.

    #53788
    Merlin
    Maître des clés

    Donc si je comprend bien & est l’équivalent de ||
    C’est-à-dire OU.
    ???

    #53789
    maxwyss
    Membre

    Selon “JavaScript, the Definitve Guide” by David Flanagan, publié par O’Reilly, il y a une grande difference entre & et &&.

    & est “bitwise AND” (je cite: “The & operator performs a Boolean AND operation on each bit of its integer arguments.
    A bit is set in the result only if the corresponding bit is set in both operands.”). Cet operateur utilise des integers et fait la comparaison.

    && est “logical AND”, et ist normalement utilisé pour combiner des expressions logiques.

    Il est donc très dangereux de dire que & et && sont le même.

    Max Wyss.

    #53790
    alex
    Participant

    J’aimerais beaucoup avoir un exemple où la logique du & soit mise en défaut avec des expressions logiques…

    #53791
    maxwyss
    Membre

    Je ne peux pas prouver, mais je crois que pour une simple connection (deux expressions logiques) & donne le resultat correct. La cause est que JavaScript est “loosely typed”, qui veut dire que le type d’une variable ou d’un expression est adapté à la fonction. Donc true serait converti à 1 et false à 0. Et maintenant, on a des integers, qui faisant le bitwise AND resultent à 1 seulement si les deux sont 1. Et le resultat (0 ou 1) est reconverti à false ou true…

    Max Wyss.

    #53792
    Merlin
    Maître des clés

    Aïe, aïe, aïe…
    Je commence à ne plus comprendre les réponses.
    :geek:

    Bon, en tous cas merci à vous deux.
    :bonjour:

Affichage de 13 réponses de 1 à 13 (sur un total de 13)
  • Vous devez être connecté pour répondre à ce sujet.