Le problème est que lorsque l'on tape une ligne très grande,
l'aperçu continue sur la même ligne et décale tout ce qui est à droite
de l'aperçu, malgré le width : le texte ne s'arrête pas mais continue
!!!
Je voudrais que dans l'aperçu, le texte continue sur la ligne suivante au lieu de continuer sur la même ligne.
lesdis
Messages postés403Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention 7 août 2020 16 janv. 2007 à 15:15
Ce probleme n'arrive que lorsqu'il y a une chaîne de caractère sans espace. Le navigateur ne sait pas donc pas couper la chaîne pour le retour à la ligne.
Je peut te proposer de jeter un coup d'oeil à la propriétés overflow qui permet au navigateur de gérer ce genre de soucis.
Et un petit exemple :
Dans ce cas, tu auras des scrollbar autour de ton div et il n'y aura plus de depassement de largeur
telecofr
Messages postés12Date d'inscriptionsamedi 7 mai 2005StatutMembreDernière intervention 5 août 2009 16 janv. 2007 à 16:09
merci à vous deux !!
en effet, ca reste sur la même ligne s'il n'y pas d'espaces !!
J'ai une autre question : je suis actuellement sous firefox.
L'aperçu en directe marche très bien, mais une fois sous IE 6, l'aperçu n'est pas en direct.
Je m'explique :
sous firefox : je tape dans textarea mon texte et instantanément, le texte est affiché dans l'aperçu.
sous IE : je tape mon texte, rien ne s'affiche dans l'aperçu. Mais si je clique une fois sur la zone textarea où j'ai tapé mon texte, l'aperçu apparait...!
Comment faire pour que ca soit en direct sous IE, comme avec firefox ?
lesdis
Messages postés403Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention 7 août 2020 16 janv. 2007 à 17:07
Aucun probleme sur IE7, je ne peut donc pas te répondre pour IE6 vu que je ne l'ai plus.
Mais d'apres ton explication, ce serait peut être un probleme sur l'evenement onKeyup qui ne se declencherais pas.
Bonne journée et n'hésite pas à valider les réponses si ton problème est résolu.
Vous n’avez pas trouvé la réponse que vous recherchez ?
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201116 16 janv. 2007 à 17:51
B
onjour à tous...
1/ problème de wrap : FireFox ne connaît pas la propriété wrap quoiqu'on en pense et le fonctionnement est celui que tu as observé
2/ Aperçu en direct : l'événement onkeyup fonctionne bien sous les deux, IE et FF, j'ai un truc similaire qui fonctionne sans probléme... il te faut peut être optimiser ta fonction Remplacer, voici celle que j'utilise...
//--------------------------------
function Change(txt_, src_, dest_){
var Inc = src_.length;
var Pos = txt_.indexOf( src_);
while( Pos > -1){
txt_ = txt_.replace( src_, dest_);
Pos = txt_.indexOf( src_, Pos +Inc);
}
return( txt_);
}
donc peut être un problème d'excécution sous IE...
;0)
telecofr
Messages postés12Date d'inscriptionsamedi 7 mai 2005StatutMembreDernière intervention 5 août 2009 17 janv. 2007 à 09:13
Salut,
PetoleTeam, pourrais tu m'expliquer ton code, car je n'ai pas compris à quoi correspondaient les différentes variables...
Merci !
J'ai un autre souci avec mon bbcode :
lorsque je clique sur un smiley, il envoie bien dans la zone textarea, mais le smiley n'apparaît pas directement dans l'aperçu : il faut je tape une lettre ou que je clique sur la zone textarea pour pouvoir afficher le smiley.
Mon code pour le bbcode est le suivant :
function smiley(img) <!--BBCODE -->
{
window.document.formu_livreor.textarea.value += ' ' + img + ' ';
document.formu_livreor.textarea.focus(); <!-- Pour que le curseur apparaisse dans la zone de texte-->
}
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201116 17 janv. 2007 à 11:55
B onjour...
//--------------------------------
// txt_ : texte à modifier
// src_ : balise à remplacer
// dest_ : balise de remplacement
//--------------------------------
function Change(txt_, src_, dest_){
//-- longueur de la chaine à remplacer
var Inc = src_.length;
//-- Position de la 1st occurence de la chaine à remplacer
var Pos = txt_.indexOf( src_);
//-- Tant qu'elle existe => Position > -1
while( Pos > -1){
//-- Remplace src_ par dest_
txt_ = txt_.replace( src_, dest_);
//-- Recherche occurence suivante
Pos = txt_.indexOf( src_, Pos +Inc);
}
return( txt_);
}
Dans ta fonction smiley il faut que tu appelles la fonction aperçu pour faire la mise à jour directement...
;0)
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201116 17 janv. 2007 à 12:10
pour info je travailles avec
<TEXTAREA ID='T_MESS' ...onkeyup="Voir('T_MESS','D_VOIR');"></TEXTAREA>
et
...la fonction Voir
//-------------------------
function Voir( id_, where_){
var Html;
var O_Srce = document.getElementById( id_);
var O_Dest = document.getElementById( where_);
Html = O_Srce.value;
Html = Change( Html, "[b]", '');
Html = Change( Html, "/b", '');
...etc
et la mise à jour de l'aperçu
O_Dest.innerHTML = Html;
}
...je peux donc mettre l'appel de la fonction dans n'importe quelle autre fonction par exemple
//------------------------
function AjoutSmiley( img){
//-- le code au choix ...
//-- Appel de mise à jour
Voir('T_MESS','D_VOIR');
}
;0)
telecofr
Messages postés12Date d'inscriptionsamedi 7 mai 2005StatutMembreDernière intervention 5 août 2009 17 janv. 2007 à 17:26
Merci PetoleTeam pour ton aide !!
j'ai réussi et ça marche nickel.
Dernier souci, j'ai un bouton "effacer" dans mon formulaire, et je voudrais que lorsque je clique dessus, ca efface non seulement le textarea mais aussi l'apercu.
Pour l'instant, je n'ai que le textarea qui s'efface. Pour effacer l'apercu, il faut que je clique une fois dans le textarea...
J'ai essayé de mettre onClick="apercu('textarea','apercu')", dans le input reset, mais ca ne marche pas.
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201116 17 janv. 2007 à 18:05
Même principe que pour les boutons insertion de smiles...
une fonction qui permet des inits divers...
//---------------------------
function Re_Init(id_, where_){
var O_Srce = document.getElementById( id_);
var O_Dest = document.getElementById( where_);
O_Srce.value=""; // le TextArea
O_Dest.innerHTML=""; // le DIV
}