begin process at 2012 05 29 08:05:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Function & Méthodes

 > 

Deux codes IDENTIQUES ne fonctionnent pas pareil


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Deux codes IDENTIQUES ne fonctionnent pas pareil

dimanche 6 août 2006 à 22:13:42 | Deux codes IDENTIQUES ne fonctionnent pas pareil

zeguizmo

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.

<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 <div> contenant la bulle d'aide
   g_bulle_aide = creer_bulle_aide();
   // affectation de onmouseover et de onmouseout sur tous les <span class="aide">
   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 <span>)
  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 href=[^>]+>.*<\/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

ZeGuizmo

ZeGuizmo
lundi 7 août 2006 à 09:10:44 | Re : Deux codes IDENTIQUES ne fonctionnent pas pareil

nickadele

Membre Club Administrateur CodeS-SourceS
http://www.javascriptfr.com/codes/INFO-BULLE-COMPATIBLE-SELECT-DOCTYPE_38238.aspx

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
lundi 7 août 2006 à 13:40:29 | Re : Deux codes IDENTIQUES ne fonctionnent pas pareil

zeguizmo

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

ZeGuizmo
mardi 8 août 2006 à 22:18:59 | Re : Deux codes IDENTIQUES ne fonctionnent pas pareil

zeguizmo

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
mardi 8 août 2006 à 23:04:38 | Re : Deux codes IDENTIQUES ne fonctionnent pas pareil

nickadele

Membre Club Administrateur CodeS-SourceS
Heuuuuuuuuuu c'est plus de l'info bulle là lol

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
mardi 8 août 2006 à 23:26:19 | Re : Deux codes IDENTIQUES ne fonctionnent pas pareil

zeguizmo

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
mercredi 9 août 2006 à 08:36:17 | Re : Deux codes IDENTIQUES ne fonctionnent pas pareil

nickadele

Membre Club Administrateur CodeS-SourceS
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
mercredi 9 août 2006 à 08:43:11 | Re : Deux codes IDENTIQUES ne fonctionnent pas pareil

nickadele

Membre Club Administrateur CodeS-SourceS
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
mercredi 9 août 2006 à 13:52:27 | Re : Deux codes IDENTIQUES ne fonctionnent pas pareil

zeguizmo

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 <br />Métal: 2157 Cristal: 1229 <br />Deutérium: 423 Energie: 2433 <br />Flotte  <br />Satellite solaire 12 <br />Défense <br />Lanceur de missiles 52 Artillerie laser légère 257 <br />Artillerie laser lourde 13 Canon de Gauss 2 <br />Artillerie à ions 3 Petit bouclier 1 <br />Grand bouclier 1 Missile Interception 10 <br />Bâtiments  <br />Mine de métal 17 Mine de cristal 16 <br />Synthétiseur de deutérium  14 Centrale électrique solaire 18 <br />Centrale électrique de fusion 3 Usine de robots 6 <br />Chantier spatial 7 Hangar de métal 5 <br />Hangar de cristal 4 Réservoir de deutérium 3 <br />Laboratoire de recherche 1 Silo de missiles 2 <br />Recherche  <br />Technologie Espionnage 10 Technologie Ordinateur 10 <br />Technologie Armes 9 Technologie Bouclier 10 <br />Technologie Protection des vaisseaux spatiaux 8 Technologie Energie 10 <br />Technologie Hyperespace 6 Réacteur à combustion 9 <br />Réacteur à impulsion 7 Propulsion hyperespace 4 <br />Technologie Laser 10 Technologie Ions 5 <br />Technologie Plasma 7 <br /><br />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
mercredi 9 août 2006 à 17:19:36 | Re : Deux codes IDENTIQUES ne fonctionnent pas pareil

nickadele

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
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

1 2

Cette discussion est classée dans : aide, var, id, tab, bulle


Répondre à ce message

Sujets en rapport avec ce message

Probleme javascript firefox [ par mismouss2306 ] Bonjour,J'ai un problème avec ce script qui fonctione sous IE7 mais pas sous FIREFOX ://** Ultimate Tabbed Product Menu **   var enabletabpersiste Bulle d'aide [ par frd2k ] Bonjour à tous,Je viens ici poser une question ou même chercher de l'aide.J'ai trouver sur votre site un code permettant de faire une bulle d'aide ima Bulle d'aide qui affiche le résultat d'un SELECT MySQL [ par bruno9173 ] Bonsoir,tout ou presque est dans le titre. Si vous avez un lien concernant la manip. je suis preneur :)Merci Compter nombre d'occurences avec regexp [ par alex166435 ] Bonjour,Je souhaiterais connaitre le nombre de mot de ma regexp contenus dans ma chaine. J'ai essayé de faire :var ma_regexp = new RegExp ("toto|tata" un formulaire n'est pas rempli par des infos transmis avec ajax [ par tiwtiwa11 ] Bonjour tout le monde,j'ai un problème que j'ai pas pu résoudre ça fait une semaine,je m'explique:j'ai une liste déroulante dans laquelle je choisis u Aide 3eme liste dynamique ??? [ par morpheus22170 ] bonjour j'arrive à faire 2 listes dynamiques, c'est à dire quand je choisis la section infomatique, j'ai les catégories souris-écrans-unités-imprimant Json et ajax, clé variable [ par kenshiroseifu ] Bonjour, Je récupère un json que je créé en java.Le fichier json : {"documentOriginalJson": object{<span unterminated string literal [ par kangun ] Bonjour. je me tourne vers vous suite à un problème apparut sur un java script. en effet, je souhaite afficher une bulle au dessus d'une image et chan Constructeur Ajax dans classe javascript [ par TheGorgo ] Bonjour, Je cherche à créer des classes javascript avec deux constructeurs. L'un d'eux est un à partir objet documentElement (facile). Pour l'autre c Code qui ne fonctionne pas sur IE8 [ par Ewan83 ] [^^!2][b]Attention : question de noob [/b][^^happy3] Bonjour, Quelqu'un pourrait-il me dire pourquoi le petit module que je tente de faire pour créer


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales