Deux codes IDENTIQUES ne fonctionnent pas pareil [Résolu]

Signaler
Messages postés
138
Date d'inscription
vendredi 1 août 2003
Statut
Membre
Dernière intervention
16 juillet 2009
-
Messages postés
138
Date d'inscription
vendredi 1 août 2003
Statut
Membre
Dernière intervention
16 juillet 2009
-
Salut,

Desolé pour la section mais je n'ai rien pigé alors j'ai mis au mieux ...


Je commence a devenir chèvre la. J'utilise un code (que je donnerais plus bas) pour afficher des bulles d'aide.


Je veux faire une modif : je la fais.


Elle ne fonctionne pas ........ soit, je l'enleve.


Le code qui marchait tres bien avant la modif, ne marche plus, alors
qu'il est EXACTEMENT identique au premier puisque j'ai viré la modif.


Je ne pige rien, et ca commence a me taper sur les nerf serieusement la !


Voila le code en question (il n'est pas de moi):

L'original est en noir et en italique, la modification y apparait en
rouge et en gras (ce ne sont que des symboles ajoutés, rien n'est modifié). Quand je vire la modif, le code ne fonctionne plus,
alors qu'il est exactement identique a l'original. Essayez vous verrez
par vous même.

<tt>
<style type= "text/css">


<!--


/* styles à adapter selon vos besoins et vos goûts */


.aide {


   border-bottom : 1px #888 dashed;


   cursor: help;


}



.bulle-aide {


  position: absolute;


  left: 0;


  top: 0;


  padding: 4px;


  font-family: verdana, arial, sans-serif;


  font-size: 11px;


  background-color: #ffffe8;


  border: 1px #888 solid;


  visibility: hidden;


  z-index: 100;


}



/* utile seulement si vous placer des tableaux dans vos bulles */


.bulle-aide th, .bulle-aide td {


  font-size: 11px;


}



.bulle-aide caption {


  font-size: 12px;


  font-weight: bold;


}


-->


</style>



<script language="JavaScript">


<!-- Debut script



var CLASS_AIDE = "aide";


var g_pos_curseur;


var g_bulle_aide;


var g_textes_bulle = new Array();


var g_bulle_flag = false;


var g_id_cour = null;



onload = init;



function init() {


   // création du
contenant la bulle d'aide


   g_bulle_aide = creer_bulle_aide();


   // affectation de onmouseover et de onmouseout sur tous les


   var tab_spans = document.getElementsByTagName("span");


   for (i in tab_spans) {


       if (tab_spans[i].className == CLASS_AIDE) {


           tab_spans[i].id = CLASS_AIDE + i;


           tab_spans[i].onmouseover = afficher_aide (i) ;


           // astuce pour le cas où le title contient un lien :


           // seuls les textes ne contenant pas de lien ferment la bulle sur un onmouseout


           // pour les autres, on fait un 2e onmouseover


           if (!tab_spans[i].title.sansMouseOut()) tab_spans[i].onmouseout = masquer_aide;


           // on stocke les title dans un tableau, et on supprime chaque title


           // pour ne pas les afficher en même temps que la bulle d'aide


           g_textes_bulle[CLASS_AIDE + i] = tab_spans[i].title;


           tab_spans[i].title = "";


       }


   }


}



function creer_bulle_aide() {


   // création de l'objet bulle d'aide


   var bulle_aide = document.createElement("DIV");


   var tags_body = document.getElementsByTagName("BODY");


   tags_body[0].appendChild(bulle_aide);


   bulle_aide.setAttribute("id", "bulle_aide");


   bulle_aide.className = "bulle-aide";


   // on y ajoute un noeud texte


   var texte = document.createTextNode("");


   bulle_aide.appendChild(texte);


   return bulle_aide;


}



function afficher_aide( i ) {


   // affiche l'aide dans la bulle en fonction de l'id du span


   var texte = g_textes_bulle[this.id];


   // si le flag est true, on masquera la bulle (2e mouseover) si le title du span contient un lien


   if (g_bulle_flag) {


       if (this.id == g_id_cour) {


           var afficher = false;


           g_bulle_flag = false;


           g_id_cour = null;


       }


       else {


           var afficher = true;


           if (texte.sansMouseOut()) g_id_cour = this.id;


           else {


               g_bulle_flag = false;


               g_id_cour = null;


           }


       }


   }


   // sinon, on affichera la bulle


   // si le title du span contient un lien : on met le flag à true (1e mouseover)


   else {


       var afficher = true;


       if (texte.sansMouseOut()) {


           g_bulle_flag = true;


           g_id_cour = this.id;


       }


   }


   // si affichage de la bulle


   if (afficher) {


       // on modifie le texte de la bulle d'aide


       g_bulle_aide.innerHTML = texte;


       // place la bulle d'aide sous le curseur


       g_bulle_aide.style.left = g_pos_curseur.x-10;


       g_bulle_aide.style.top = g_pos_curseur.y+5;


       // et la rend visible


       g_bulle_aide.style.visibility = "visible";


   }


   // sinon masquage de la bulle


   else g_bulle_aide.style.visibility = "hidden";


}



function masquer_aide() {


  // masque la bulle d'aide (déclenché par un onmouseout sur le )


  g_bulle_aide.style.visibility = "hidden";


}



String.prototype.sansMouseOut = function() {


   // détermine si le texte de la bulle contient certaines balises HTML (actuellement seulement des liens)


   // qui empêchent la fermeture de la bulle sur un onmousout du span ayant ouvert la bulle


   if (this.search(/]+>.*<\/a>/) == -1) return false;


   else return true;


}



// affectation de la fonction "emplacementSouris" à l'événement onmousemove


document.onmousemove = emplacementSouris;



// Cette fonction appelle emplacementSouris à chaque mouvement de la souris


function emplacementSouris(e) {


  // avec IE, on utilise l'objet "event"


  if (document.all) g_pos_curseur = {x: event.offsetX, y: event.offsetY};


  // avec Netscape, Mozilla, on utilise l'événement "e" en argument


  else g_pos_curseur = {x: e.pageX, y: e.pageY};


}



//  Fin script -->


</script>


J'ai vidé le cache, fermé mon navigateur, redémarré le PC, formatté,
plongé mon dur dans un congelo, l'ai confié a une bactérie mange virus
avant de l'envoyer y faire un tour dans l'atmosphere sulfurisée de
Venus. Il ne devrait rester aucune trace du code buggé quand j'execute
le nouveau code sans modif ...


Merci bcp de votre aide, pareceque sur Venus il est a deux doigts d'y aller le PC
</tt>
ZeGuizmo

ZeGuizmo

10 réponses

Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

Je pense que j'ai trouvé la raison, malheureusement je na sait tester d'ici donc je te dévoile ma trouvaille :
"Probabilité de destruction de la flotte d'espionnage : 0%"

A mon avis ton problème vient de : "d'espionnage" avec la simple quote, essaye en supprimant la simple quote, c'est la seule phrase ayant une quote !
Si cela fonctionne il te faudra remplacer la simple quote par \'

Nickadele
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

http://www.javascriptfr.com/codes/INFO-BULLE-COMPATIBLE-SELECT-DOCTYPE_38238.aspx



Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Messages postés
138
Date d'inscription
vendredi 1 août 2003
Statut
Membre
Dernière intervention
16 juillet 2009

Ce n'est pas la réponse que j'attendais, mais ce code est certainement bien plus poussé que le miens, merci bcp.

ZeGuizmo
Messages postés
138
Date d'inscription
vendredi 1 août 2003
Statut
Membre
Dernière intervention
16 juillet 2009

Salut,

Ca fait deux jours que je me bat avec le script que tu m'as donné.

Il semblerait qu'il y ait une limite de caractéres ou de retours a la ligne, mais impossible de voir comment la faire sauter;

Je veux afficher un texte dépassant les 1100 caractères de peu.

Merci de m'éclairer.

ZeGuizmo
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

Heuuuuuuuuuu c'est plus de l'info bulle là lol

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Messages postés
138
Date d'inscription
vendredi 1 août 2003
Statut
Membre
Dernière intervention
16 juillet 2009

Ce n'est pas la question :)

J'ai de très bonnes raisons de faire ce que je fais, et j'aurais besoin d'aide sur ce coup.
Le php ca va encore mais le js je n'y connais rien du tout, et la ca commence a devenir pressant :)

D'autant plus que si j'enleve quelques mots au texte que je veux afficher, cela fonctionne parfaitement ... la limite doit etre de 1000 caractères ou un truc du genre.

Peux tu me mettre sur la voie pour repousser cette limite ?

Merci bien,

ZeGuizmo
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

Bizarre ce qu'a fait PetroleTeam, je lui en toucherai un mot !
Donc dans le fichier *.js tu fais une recherche sur " ObjShowAll" et tu remplaces la valeur 1000 par 1200 par exemple !
Attention il y en a plusieur, je ne garanti pas le résultat.

Merci de me tenir informer  !

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

Bon je viens de regarder le code en profondeur et tu oublies ce que j'ai dit ci-dessus, la valeur 1000 n'a rien avoir avec une quelconque limitation. Le problème ce que je ne trouve pas de limitation dans le code !
Peux tu mettre ton code (version html, pas besoin du php...) pour que l'on puisse voir ou se situe  le problème !

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Messages postés
138
Date d'inscription
vendredi 1 août 2003
Statut
Membre
Dernière intervention
16 juillet 2009

Oui c'est bien mon probleme aussi, je ne trouve aucune limitation dans le code non plus :( ... Je pensais que c'etait du a mon ignorance.

J'utilise le .js et le .css d'origine livré avec les script infobulle ...

Pour ma page je ne sais pas si cela est vraiment necessaire ... l'insertion est extremement simple, et de plus, ca fonctionne parfaitement avec un texte de petite dimension ... (dans cette meme page) Alors qu'avec un texte de plus grande dimension, absolument rien ne se passe lorsque je passe la souris sur le texte entre "<span .."

La preuve étant que lorsque j'utilise mon texte sur la page fournie par Petroleteam lui même, cela ne fonctionne pas non plus !

Cela ne peut-il pas venir d'un .css machin truc plutot que du java ?

PS : je met le texte que j'utilise pour que tu testes par toi meme, c'est un rapport d'espionnage Ogame :

Matières premières sur ********** [*:***:**] le 08-06 10:01:48
Métal: 2157 Cristal: 1229
Deutérium: 423 Energie: 2433
Flotte 
Satellite solaire 12
Défense
Lanceur de missiles 52 Artillerie laser légère 257
Artillerie laser lourde 13 Canon de Gauss 2
Artillerie à ions 3 Petit bouclier 1
Grand bouclier 1 Missile Interception 10
Bâtiments 
Mine de métal 17 Mine de cristal 16
Synthétiseur de deutérium  14 Centrale électrique solaire 18
Centrale électrique de fusion 3 Usine de robots 6
Chantier spatial 7 Hangar de métal 5
Hangar de cristal 4 Réservoir de deutérium 3
Laboratoire de recherche 1 Silo de missiles 2
Recherche 
Technologie Espionnage 10 Technologie Ordinateur 10
Technologie Armes 9 Technologie Bouclier 10
Technologie Protection des vaisseaux spatiaux 8 Technologie Energie 10
Technologie Hyperespace 6 Réacteur à combustion 9
Réacteur à impulsion 7 Propulsion hyperespace 4
Technologie Laser 10 Technologie Ions 5
Technologie Plasma 7

Probabilité de destruction de la flotte d'espionnage : 0%

Et quand on supprime la derniere ligne (probabilité ..) ca marche !! (cela ne vient pas du %, j'ai essayé de le virer, pas de résultats)

Merci de ton aide (et si il faut la page quand meme, signale le, je la posterais)

ZeGuizmo
Messages postés
138
Date d'inscription
vendredi 1 août 2003
Statut
Membre
Dernière intervention
16 juillet 2009

Tu as raison, merci a toi !

ZeGuizmo