Incrémentation d'une variable globale en javascript

forcels Messages postés 64 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 27 août 2010 - 20 sept. 2007 à 17:24
forcels Messages postés 64 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 27 août 2010 - 21 sept. 2007 à 10:05
Hello !

Je cherche depuis des heures à incrémenter une variable globale, à chaque fois que j'appelle une méthode.

Je dois créer un nouveau plugin pour tinymce, afin de pouvoir insérer des balises personnalisées dans un textarea. Ce que j'aimerais c'est avoir un id différent pour chaque balise, afin de récupérer son contenu, d'où mon incrémentation.

Voici mon code:

<hr />
<script type="text/javascript" language="javascript">
var linkId = 0; // déclaré au tout début du script, avant les fonctions

function incremente() {
    linkId = linkId + 1;
    var link = ' &lt;&sect; ' + typeName + ':' + article + ':' + linkName + ' &sect;&gt; ' + linkId;
    alert(linkId);
}
</script>
<hr />
Est-ce que quelqu'un voit où est la faute ?

Je vous remercie d'avance pour votre aide.

forcels

4 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
20 sept. 2007 à 18:21
<html>
<head>
 
  <script type="text/javascript">
  <!--
  var global_ID = 1;

  function GetID() {
    return global_ID++;
  }
 
  function GetText() {
    return ('un texte, ID='+GetID()+'
');
  }
  //-->
  </script>

</head>

  <script type="text/javascript">
  <!--
  for (i=0; i<10; i++) {
    document.write(GetText());
  }
  //-->
  </script>

</html>
0
forcels Messages postés 64 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 27 août 2010
21 sept. 2007 à 09:21
Hello

Merci pour ta réponse f0xi. Mais dans mon cas, cela ne fonctionne pas.

Je travaille avec tinymce, et je rajoute un plugin là-dedans. Je clique donc sur le bouton que je viens de créer pour ajouter une balise personnalisée, et lorsque je clique sur le bouton, cela fait appel à un fichier .js, où j'ai ma variable globale pour faire mon incrémentation.

Mon problème, c'est que la variable globale est à chaque fois réinitialisée. Comment je peux faire pour que cette variable ne soit pas réinitialisée?

Où existe-t-il un autre moyen, pour que je puisse donner un id différent pour chaque balise que je rajoute ?

Merci beaucoup de t'intéresser à mon problème

forcels
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
21 sept. 2007 à 09:47
Bonjour, pour rajouter un id à chaque balise que tu rajoutes ? tu en aura besoin de cet id  ? sinon, tu peux faire un truc du genre
function incremente() {
    var _id = Math.ceil(Math.random(Date.parse(new Date()) ) * Date.parse(new Date()));   
    var link = ' &lt;&sect; ' + typeName + ':' + article + ':' + linkName + ' &sect;&gt; ' + linkId;
    alert(linkId);
}
ce qui fait que l'id sera unique ( calculer sur la date ) et voilà ;o)
[o-_-o]
0
forcels Messages postés 64 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 27 août 2010
21 sept. 2007 à 10:05
Hello !

Je viens juste de trouver une solution à mon problème !

En fait, j'ai déclaré ma variable globale dans le fichier de départ de tinymce (tiny_mce.js) et je l'appelle ensuite depuis mon fichier js, se trouvant dans mon plugin, de cette manière: tinyMCE.ma_variable_globale.

De cette manière, ma variable globale n'est pas réinitialisée.

En espérant que ca peut aider quelqu'un
Merci beaucoup de votre aide !

forcels
0
Rejoignez-nous