Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1272 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Le javascript du forum ne fonctionne pas bien avec konqueror...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Le javascript du forum ne fonctionne pas bien avec konqueror...

n°561197
kaiska
Posté le 06-11-2003 à 19:38:58  profilanswer
 

Bonjour,
Je viens de m'apercevoir d'un petit bug dans le forum. Je m'explique. Lorsque qu'on compose un message on a des petits boutons pour mettre en gras, en italique, pour souligner, etc. Sur les navigateurs, quand on effectue une sélection sur une partie du texte qu'on a tapé dans la textarea, et qu'on clique sur le bouton gras, des balises gras apparaissent autour du texte séléctionné.

blabla bla bla [g]texte séléctionné[/g] blabla bla bla


Seulement sous konqueror, ces balises apparaissent au bout de toute la zone de texte :

blabla bla bla texte séléctionné blabla bla bla[g][/g]


 
Quelqu'un aurais une idée du bug dans le javascript ?

mood
Publicité
Posté le 06-11-2003 à 19:38:58  profilanswer
 

n°561216
kaiska
Posté le 06-11-2003 à 20:27:10  profilanswer
 

Le javascript fautif c'est celui là

Code :
  1. function countInstances(open,closed)
  2.   {
  3.      var opening = document.hop.contenu.value.split(open);
  4.      var closing = document.hop.contenu.value.split(closed);
  5.      return opening.length + closing.length - 2;
  6.   }
  7.   function TAinsert(text1,text2)
  8.   {
  9.      var ta = document.getElementById('contenu');
  10.      
  11.      if (document.selection) {
  12.         var str = document.selection.createRange().text;
  13.         ta.focus();
  14.         var sel = document.selection.createRange();
  15.         if (text2!="" )
  16.         {
  17.            if (str=="" )
  18.            {
  19.               var instances = countInstances(text1,text2);
  20.               if (instances%2 != 0){ sel.text = sel.text + text2;}
  21.               else{ sel.text = sel.text + text1;}
  22.            }
  23.            else
  24.            {
  25.               sel.text = text1 + sel.text + text2;
  26.            }
  27.         }
  28.         else
  29.         {
  30.            sel.text = sel.text + text1;
  31.         }
  32.        
  33.      }
  34.      else if (ta.selectionStart | ta.selectionStart == 0)
  35.      {
  36.         if (ta.selectionEnd > ta.value.length) { ta.selectionEnd = ta.value.length; }
  37.      
  38.         var firstPos = ta.selectionStart;
  39.         var secondPos = ta.selectionEnd+text1.length;
  40.      
  41.         ta.value=ta.value.slice(0,firstPos)+text1+ta.value.slice(firstPos);
  42.         ta.value=ta.value.slice(0,secondPos)+text2+ta.value.slice(secondPos);
  43.        
  44.         ta.selectionStart = firstPos+text1.length;
  45.         ta.selectionEnd = secondPos;
  46.         ta.focus();
  47.      }
  48.      else
  49.      { // Opera  
  50.         var sel = document.hop.contenu;
  51.      
  52.         var instances = countInstances(text1,text2);
  53.         if (instances%2 != 0 && text2 != "" ){ sel.value = sel.value + text2; }
  54.         else{ sel.value = sel.value + text1; }
  55.      } 
  56.   }

Personne vois ?

n°561727
kaiska
Posté le 07-11-2003 à 13:17:05  profilanswer
 

up pitit up :)

n°561742
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-11-2003 à 13:32:56  profilanswer
 

Si tu trouves comment le corriger, tu peux envoyer la modif à Joce :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°561774
kaiska
Posté le 07-11-2003 à 14:12:36  profilanswer
 

Lol ben je connais même pas son contact. Tu l'aurais toi ? Je lui en toucherais bien 2 mots. J'ai fait le tour des forums et l'erreur est la même partout, sur phpbb, invisionboard...

n°561775
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-11-2003 à 14:17:35  profilanswer
 

http://forum.hardware.fr/message.p [...] &dest=joce
 
Dans phpbb ça ne marche pas dans Mozilla, alors qu'ici ça marche bien :)
 
Le code utilisé ici ne vient pas de Joce en fait, il a juste repris le code que Freekill lui a donné :
http://forum.presence-pc.com/forum [...] ge=1#t3803


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°561787
kaiska
Posté le 07-11-2003 à 14:34:26  profilanswer
 

Ah merci impécable :) j'envoie un message privé à freekill :)

n°561934
gm_superst​ar
Appelez-moi Super
Posté le 07-11-2003 à 18:27:45  profilanswer
 

kaiska a écrit :

Personne vois ?


Parce qu'en matière de manipulation de texte dans les textarea, chaque navigateur fait selon se sauce. Donc libre à toi de proposer le code qui va bien pour Konqueror :)


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°562050
kaiska
Posté le 07-11-2003 à 22:54:50  profilanswer
 

gm_superstar a écrit :


Parce qu'en matière de manipulation de texte dans les textarea, chaque navigateur fait selon se sauce. Donc libre à toi de proposer le code qui va bien pour Konqueror :)


malheureusement mes compétences en javascript son proche du alert("Hello Hfr" ); mais j'imagine qu'il y a un bien une norme pour le javascript.

n°562225
gm_superst​ar
Appelez-moi Super
Posté le 08-11-2003 à 12:40:50  profilanswer
 

Ce n'est pas ici un problème de JavaScript, mais de DOM.
 
Il y a bien ça en DOM qui correspond à ce que tu cherches :
 
http://www.w3.org/TR/2000/REC-DOM- [...] anges.html
 
Mais son application au Textarea est sujette à débat. Donc pour l'instant il y a ceux qui s'y conforment (IE, une fois n'est pas coutume, avec createRange()) et ceux qui estiment que le textarea est un cas à part (Moz, Opera, peut être konqui)
 
Donc le plus simple est de regarder dans l'implémentation DOM de KHTML (le moteur de Konqueror) pour voir ce qu'il est possible de faire.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
mood
Publicité
Posté le 08-11-2003 à 12:40:50  profilanswer
 

n°565513
Freekill
Electron libre…
Posté le 13-11-2003 à 00:36:44  profilanswer
 

Quand on utilise konqueror on tape ses balises à la main, parce qu'on est un vrai rebelz? [:ddr555]


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
n°565529
gm_superst​ar
Appelez-moi Super
Posté le 13-11-2003 à 00:59:21  profilanswer
 

Cela dit, le moteur de Konqueror est utilisé dans Safari, le navigateur par défaut d'OS X... Et les macqueux, c'est pas tellement des rebelz ;)


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°565543
Freekill
Electron libre…
Posté le 13-11-2003 à 01:22:00  profilanswer
 

Peut-être, mais ce moteur ne dispose pas d'équivalent à getSelection() ou selection.createRange(), donc pas moyen de savoir quel est le texte sélectionné? :/  
 
Le mieux que l'on puisse faire c'est de taper les balises à la fin du texte? [:spamafote]  
 


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Le javascript du forum ne fonctionne pas bien avec konqueror...

 

Sujets relatifs
Comment bloquer le HTML sur un forum?extraction des donnees des forum phpbb
[ Javascript ] pb de soulignés a la place d'espaces dans une chaine..[Javascript] iframe
[SDL] je comprends pas bien une fonction...[PHP] mes variables de sessions ne fonctionne pas
Pb avec "this" javascript[ASP.Net] selectedindex dans une class ne fonctionne pas ! [résolu]
[javascript] si cette page est en pleine ecran : remet la normale[Forum] récuperer les retours de lignes des champs
Plus de sujets relatifs à : Le javascript du forum ne fonctionne pas bien avec konqueror...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR