Afficher une prev bbcode
Résolu/Fermé
A voir également:
- Afficher une prev bbcode
- Afficher mot de passe wifi android - Guide
- Afficher appdata - Guide
- Afficher taille dossier windows - Guide
- Windows 11 afficher d'autres options - Guide
- Afficher calendrier outlook dans google agenda - Guide
14 réponses
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
12 janv. 2019 à 22:28
12 janv. 2019 à 22:28
Bonjour,
Pas très clair.....
Tu dis :
Ca le met ailleurs.... ou ça ne le met nul part ??
As tu des choses qui s'affichent dans la console de ton navigateur ?
Et dans quel cas as tu le souci ? Lors du clic sur le bouton qui fait appel à la fonction : previsualiser
Ou lorsque tu écris dans le textarea, qui lui fait appel à la fonction : preview
via :
Et au passage.... Pourquoi mélanges tu du jquery et du pur javascript ?
Si tu fais du jquery.. autant faire ton ajax en jquery également..
Pas très clair.....
Tu dis :
mais il ne mets pas mon texte dans la zone prevu
Ca le met ailleurs.... ou ça ne le met nul part ??
As tu des choses qui s'affichent dans la console de ton navigateur ?
Et dans quel cas as tu le souci ? Lors du clic sur le bouton qui fait appel à la fonction : previsualiser
onclick="previsualiser();"
Ou lorsque tu écris dans le textarea, qui lui fait appel à la fonction : preview
via :
onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');
Et au passage.... Pourquoi mélanges tu du jquery et du pur javascript ?
Si tu fais du jquery.. autant faire ton ajax en jquery également..
en faite, dans la console me dit lorsque je cliques
bbcode ligne 73
nouveau ligne 215
quand je met une alert il ne veut pas afficher le texte dans la page mais il m'ouvre une fenetre alerte ;)
merci
bbcode.js:73 Uncaught TypeError: Cannot read property 'checked' of null at preview (bbcode.js:73) at HTMLTextAreaElement.onkeyup (nouveau.php:215)
bbcode ligne 73
function preview(textareaId, previewDiv) { var field = textareaId.value; if (document.getElementById('previsualiser').checked && field) {
nouveau ligne 215
<textarea class="global-nouveau-textarea" data-autoresize spellcheck="false" placeholder="décrivez ici votre problème : <nav><ul><li>donnez un maximum d'informations (logiciels version etc.....)</li><li>pas d'incitation au piratage, crack etc...</li><li>un bonjour et un merci font toujours plaisir.</li><li>svp, attendez 24 h afin de pouvoir repondre, et veuillez modifier votre sujet</li></ul></nav>" onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="textarea"></textarea>
quand je met une alert il ne veut pas afficher le texte dans la page mais il m'ouvre une fenetre alerte ;)
merci
j'ecrit un message ici, mais il n’apparaît pas il me dit vous avez dejà posté ce message hors je ne vois pas
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
13 janv. 2019 à 21:13
13 janv. 2019 à 21:13
Tu as bien placé ton code a la fin de ta page juste avant le </body> ?
oui
j'ai bien mis tout les script avant le </body>
j'ai bien mis tout les script avant le </body>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> <script src="http://monsite.legtux.org/V1/includes/jquery/select.js"></script> <script src="http://monsite.legtux.org/V1/includes/jquery/navigation.js"></script> <!-- <script src="http://monsite.legtux.org/V1/includes/jquery/mondale.js"></script>--> <script src="http://monsite.legtux.org/V1/includes/js/masquer.js"></script> <script src="http://monsite.legtux.org/V1/includes/jquery/textarea.js"></script> <script src="http://monsite.legtux.org/V1/includes/js/previsualiser.js"></script> <script src="http://monsite.legtux.org/V1/includes/js/bbcode.js"></script> <script src="http://monsite.legtux.org/V1/includes/jquery/ouvert-fermer-forum.js"></script> <script src="https://www.google.com/recaptcha/api.js"></script> <?php include "includes/view.php"; ?>
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
13 janv. 2019 à 23:41
13 janv. 2019 à 23:41
Tu es sur...
Et le view.. a ton avis..il contient quoi...
Et le view.. a ton avis..il contient quoi...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mais bon ce n'est pas grave, j'ai trouvé un autre code qui marche mais j'ai juste une question,
et html
là si je tape mon texte sur le texterea
il apparait bien
a condition, de cocher
moi j'aimerais remplacer
par
mais quand je clique sur button le message n'apparaît pas car il faut toujours coché type="checkbox"
es-ce qu'il y a mouyen de dire
lors du clique sur button : le message apparait au lieux de coché la case input
merci
<script type="text/javascript"> function insertTag(startTag, endTag, textareaId, tagType) { var field = document.getElementById(textareaId); var scroll = field.scrollTop; field.focus(); /* === Partie 1 : on récupère la sélection === */ if (window.ActiveXObject) { var textRange = document.selection.createRange(); var currentSelection = textRange.text; } else { var startSelection = field.value.substring(0, field.selectionStart); var currentSelection = field.value.substring(field.selectionStart, field.selectionEnd); var endSelection = field.value.substring(field.selectionEnd); } /* === Partie 2 : on analyse le tagType === */ if (tagType) { switch (tagType) { case "lien": endTag = "[/url]"; if (currentSelection) { // Il y a une sélection if (currentSelection.indexOf("http://") == 0 || currentSelection.indexOf("https://") == 0 || currentSelection.indexOf("ftp://") == 0 || currentSelection.indexOf("www.") == 0) { // La sélection semble être un lien. On demande alors le libellé var label = prompt("Quel est le libellé du lien ?") || ""; startTag = "[url=" + currentSelection + "]"; currentSelection = label; } else { // La sélection n'est pas un lien, donc c'est le libelle. On demande alors l'URL var URL = prompt("Quelle est l'url ?"); startTag = "[url=" + URL + "]"; } } else { // Pas de sélection, donc on demande l'URL et le libelle var URL = prompt("Quelle est l'url ?") || ""; var label = prompt("Quel est le libellé du lien ?") || ""; startTag = "[url=" + URL + "]"; currentSelection = label; } break; case "citation": endTag = "</citation>"; if (currentSelection) { // Il y a une sélection if (currentSelection.length > 30) { // La longueur de la sélection est plus grande que 30. C'est certainement la citation, le pseudo fait rarement 20 caractères var auteur = prompt("Quel est l'auteur de la citation ?") || ""; startTag = "<citation nom=\"" + auteur + "\">"; } else { // On a l'Auteur, on demande la citation var citation = prompt("Quelle est la citation ?") || ""; startTag = "<citation nom=\"" + currentSelection + "\">"; currentSelection = citation; } } else { // Pas de selection, donc on demande l'Auteur et la Citation var auteur = prompt("Quel est l'auteur de la citation ?") || ""; var citation = prompt("Quelle est la citation ?") || ""; startTag = "<citation nom=\"" + auteur + "\">"; currentSelection = citation; } break; } } /* === Partie 3 : on insère le tout === */ if (window.ActiveXObject) { textRange.text = startTag + currentSelection + endTag; textRange.moveStart("character", -endTag.length - currentSelection.length); textRange.moveEnd("character", -endTag.length); textRange.select(); } else { field.value = startSelection + startTag + currentSelection + endTag + endSelection; field.focus(); field.setSelectionRange(startSelection.length + startTag.length, startSelection.length + startTag.length + currentSelection.length); } field.scrollTop = scroll; // et on redéfinit le scroll. } function preview(textareaId, previewDiv) { var field = textareaId.value; var scroll = document.getElementById(previewDiv).scrollTop; if (document.getElementById('previsualisation').checked && field) { var smiliesName = new Array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '>_<', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°'); var smiliesUrl = new Array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png'); var smiliesPath = "http://www.siteduzero.com/Templates/images/smilies/"; field = field.replace(/&/g, '&'); field = field.replace(/</g, '<').replace(/>/g, '>'); field = field.replace(/\n/g, '<br />').replace(/\t/g, ' '); field = field.replace(/<gras>([\s\S]*?)<\/gras>/g, '<strong>$1</strong>'); field = field.replace(/<italique>([\s\S]*?)<\/italique>/g, '<em>$1</em>'); field = field.replace(/<souligne>([\s\S]*?)<\/souligne>/g, '<u>$1</u>'); field = field.replace(/<lien>([\s\S]*?)<\/lien>/g, '<a href="$1">$1</a>'); field = field.replace(/\[url=([\s\S]*?)\]([\s\S]*?)\[\/url\]/ig, '<a href="$1">$2</a>'); field = field.replace(/\[img\]([\s\S]*?)\[\/img\]/ig, '<img src="$1" class="images_postees" alt="Image" />'); field = field.replace(/<citation nom=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>'); field = field.replace(/<citation lien=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>'); field = field.replace(/<citation nom=\"(.*?)\" lien=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$2">Citation : $1</a></span><div class="citation2">$3</div>'); field = field.replace(/<citation lien=\"(.*?)\" nom=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$1">Citation : $2</a></span><div class="citation2">$3</div>'); field = field.replace(/<citation>([\s\S]*?)<\/citation>/g, '<br /><span class="citation">Citation</span><div class="citation2">$1</div>'); field = field.replace(/<taille valeur=\"(.*?)\">([\s\S]*?)<\/taille>/g, '<font size="$1">$2</font>'); field = field.replace(/<position valeur=\"(.*?)\">([\s\S]*?)<\/position>/g, '<p align="$1">$2</p>'); field = field.replace(/<titre1>([\s\S]*?)<\/titre1>/g, '<h2 class="titre1">$1</h2>'); field = field.replace(/<titre2>([\s\S]*?)<\/titre2>/g, '<h3 class="titre2">$1</h3>'); field = field.replace(/<information>([\s\S]*?)<\/information>/g, '<p class="information">$1</p>'); field = field.replace(/<question>([\s\S]*?)<\/question>/g, '<p class="question">$1</p>'); field = field.replace(/<attention>([\s\S]*?)<\/attention>/g, '<p class="attention">$1</p>'); field = field.replace(/:ange:/ig, '<img src="../images/png/smilies/ange.png" />'); field = field.replace(/:angry:/ig, '<img src="../images/png/smilies/angry.gif" />'); field = field.replace(/:blink:/ig, '<img src="../images/png/smilies/blink.gif" />'); field = field.replace(/:clin:/ig, '<img src="../images/png/smilies/clin.png" />'); field = field.replace(/:diable:/ig, '<img src="../images/png/smilies/diable.png" />'); field = field.replace(/:D/ig, '<img src="../images/png/smilies/heureux.png" />'); field = field.replace(/:hihi:/ig, '<img src="../images/png/smilies/hihi.png" />'); field = field.replace(/:huh:/ig, '<img src="../images/png/smilies/huh.png" />'); field = field.replace(/:langue:/ig, '<img src="../images/png/smilies/langue.png" />'); field = field.replace(/:magicien:/ig, '<img src="../images/png/smilies/magicien.png" />'); field = field.replace(/:mechant:/ig, '<img src="../images/png/smilies/mechant.png" />'); field = field.replace(/:ninja:/ig, '<img src="../images/png/smilies/ninja.png" />'); field = field.replace(/:pinch:/ig, '<img src="../images/png/smilies/pinch.png" />'); field = field.replace(/:pirate:/ig, '<img src="../images/png/smilies/pirate.png" />'); field = field.replace(/:pleure:/ig, '<img src="../images/png/smilies/pleure.png" />'); field = field.replace(/:lol:/ig, '<img src="../images/png/smilies/lol.gif" />'); field = field.replace(/:rouge:/ig, '<img src="../images/png/smilies/rouge.png" />'); field = field.replace(/:siffle:/ig, '<img src="../images/png/smilies/siffle.png" />'); field = field.replace(/:\)/ig, '<img src="../images/png/smilies/smile.png" />'); field = field.replace(/:soleil:/ig, '<img src="../images/png/smilies/soleil.png" />'); field = field.replace(/:\(/ig, '<img src="../images/png/smilies/triste.png" />'); field = field.replace(/:unsure:/ig, '<img src="../images/png/smilies/unsure.gif" />'); field = field.replace(/:waw:/ig, '<img src="../images/png/smilies/waw.png" />'); field = field.replace(/:zorro:/ig, '<img src="../images/png/smilies/zorro.png" />'); field = field.replace(/<liste>([\s\S]*?)<\/liste>/g, '<ul>$1</ul>'); field = field.replace(/(<br\s?\/>){0,}<puce>([\s\S]*?)<\/puce>(<br\s?\/>){0,}/g, '<li>$2</li>'); field = field.replace(/\[color="(black|red|green|blue|yellow|purple|olive)"\]([\s\S]*?)\[\/color\]/g, '<span style="color:$1">$2</span>'); for (var i=0, c=smiliesName.length; i<c; i++) { field = field.replace(new RegExp(" " + smiliesName[i] + " ", "g"), " <img src=\"" + smiliesPath + smiliesUrl[i] + "\" alt=\"" + smiliesUrl[i] + "\" /> "); } document.getElementById(previewDiv).innerHTML = field; } document.getElementById(previewDiv).scrollTop = scroll; }</script>
et html
<textarea type="text" name="contenu" onblur="verifContenu(this)" onkeyup="preview(this, 'previewDiv');" id="textarea" cols="64" rows="10" >bonjour</textarea>
là si je tape mon texte sur le texterea
il apparait bien
<div id="previewDiv" style="overflow:auto;" ></div>
a condition, de cocher
<p> <input title="cochez si vous voulez apercevoir votre texte" name="previsualisation" type="checkbox" id="previsualisation" value="previsualisation" /> <label for="previsualisation">Prévisualisation automatique</label> </p>
moi j'aimerais remplacer
<p> <input title="cochez si vous voulez apercevoir votre texte" name="previsualisation" type="checkbox" id="previsualisation" value="previsualisation" /> <label for="previsualisation">Prévisualisation automatique</label> </p>
par
<button class="icon-button-previsualiser" id="button-previsualiser" type="button" onclick="previsualisation();">prévisualiser</button>
mais quand je clique sur button le message n'apparaît pas car il faut toujours coché type="checkbox"
es-ce qu'il y a mouyen de dire
lors du clique sur button : le message apparait au lieux de coché la case input
merci
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
14 janv. 2019 à 12:17
14 janv. 2019 à 12:17
Comprends tu ce que tu écris comme code ou est-ce que tu te contentes seulement de faire des copier/coller ??
La fonction qui permet de "prévisualiser" se nomme : preview
Dans cette fonction, déclenchée lorsque tu écris dans le textarea via un
Cette ligne de code sert à vérifier si la checkbox est cochée ou non et ne déclenche donc la prévisualisation que si c'est le cas...
Si tu retires le champ html
A la limite, on peut contourner le souci (tout en gardant la fonctionnalité d'origine disponible ) en modifiant deux trois trucs...
Au niveau de la fonction :
Et au niveau de ton bouton :
faire appel à la fonction preview en passant comme dernier paramètre ( le "force" à true )
La fonction qui permet de "prévisualiser" se nomme : preview
Dans cette fonction, déclenchée lorsque tu écris dans le textarea via un
onkeyup="preview(this, 'previewDiv');"actuellement, se trouve la ligne de code
if (document.getElementById('previsualisation').checked && field)
Cette ligne de code sert à vérifier si la checkbox est cochée ou non et ne déclenche donc la prévisualisation que si c'est le cas...
Si tu retires le champ html
<input title="cochez si vous voulez apercevoir votre texte" name="previsualisation" type="checkbox" id="previsualisation" value="previsualisation" />il est normal que le code plante car il ne parvient plus à le trouver...
A la limite, on peut contourner le souci (tout en gardant la fonctionnalité d'origine disponible ) en modifiant deux trois trucs...
Au niveau de la fonction :
function preview(textareaId, previewDiv, force) { var f = typeof(force)!='undefined' && force != null ? force : false; var chkprevisualisation = document.getElementById('previsualisation'); var field = textareaId.value; var scroll = document.getElementById(previewDiv).scrollTop; var previIschecked = typeof(chkprevisualisation)!='undefined' && chkprevisualisation!=null ? chkprevisualisation.checked : false; if ( field && (previIschecked || f)) { var smiliesName = new Array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '>_<', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°'); var smiliesUrl = new Array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png'); var smiliesPath = "http://www.siteduzero.com/Templates/images/smilies/"; field = field.replace(/&/g, '&'); field = field.replace(/</g, '<').replace(/>/g, '>'); field = field.replace(/\n/g, '<br />').replace(/\t/g, ' '); field = field.replace(/<gras>([\s\S]*?)<\/gras>/g, '<strong>$1</strong>'); field = field.replace(/<italique>([\s\S]*?)<\/italique>/g, '<em>$1</em>'); field = field.replace(/<souligne>([\s\S]*?)<\/souligne>/g, '<u>$1</u>'); field = field.replace(/<lien>([\s\S]*?)<\/lien>/g, '<a href="$1">$1</a>'); field = field.replace(/\[url=([\s\S]*?)\]([\s\S]*?)\[\/url\]/ig, '<a href="$1">$2</a>'); field = field.replace(/\[img\]([\s\S]*?)\[\/img\]/ig, '<img src="$1" class="images_postees" alt="Image" />'); field = field.replace(/<citation nom=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>'); field = field.replace(/<citation lien=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>'); field = field.replace(/<citation nom=\"(.*?)\" lien=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$2">Citation : $1</a></span><div class="citation2">$3</div>'); field = field.replace(/<citation lien=\"(.*?)\" nom=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$1">Citation : $2</a></span><div class="citation2">$3</div>'); field = field.replace(/<citation>([\s\S]*?)<\/citation>/g, '<br /><span class="citation">Citation</span><div class="citation2">$1</div>'); field = field.replace(/<taille valeur=\"(.*?)\">([\s\S]*?)<\/taille>/g, '<font size="$1">$2</font>'); field = field.replace(/<position valeur=\"(.*?)\">([\s\S]*?)<\/position>/g, '<p align="$1">$2</p>'); field = field.replace(/<titre1>([\s\S]*?)<\/titre1>/g, '<h2 class="titre1">$1</h2>'); field = field.replace(/<titre2>([\s\S]*?)<\/titre2>/g, '<h3 class="titre2">$1</h3>'); field = field.replace(/<information>([\s\S]*?)<\/information>/g, '<p class="information">$1</p>'); field = field.replace(/<question>([\s\S]*?)<\/question>/g, '<p class="question">$1</p>'); field = field.replace(/<attention>([\s\S]*?)<\/attention>/g, '<p class="attention">$1</p>'); field = field.replace(/:ange:/ig, '<img src="../images/png/smilies/ange.png" />'); field = field.replace(/:angry:/ig, '<img src="../images/png/smilies/angry.gif" />'); field = field.replace(/:blink:/ig, '<img src="../images/png/smilies/blink.gif" />'); field = field.replace(/:clin:/ig, '<img src="../images/png/smilies/clin.png" />'); field = field.replace(/:diable:/ig, '<img src="../images/png/smilies/diable.png" />'); field = field.replace(/:D/ig, '<img src="../images/png/smilies/heureux.png" />'); field = field.replace(/:hihi:/ig, '<img src="../images/png/smilies/hihi.png" />'); field = field.replace(/:huh:/ig, '<img src="../images/png/smilies/huh.png" />'); field = field.replace(/:langue:/ig, '<img src="../images/png/smilies/langue.png" />'); field = field.replace(/:magicien:/ig, '<img src="../images/png/smilies/magicien.png" />'); field = field.replace(/:mechant:/ig, '<img src="../images/png/smilies/mechant.png" />'); field = field.replace(/:ninja:/ig, '<img src="../images/png/smilies/ninja.png" />'); field = field.replace(/:pinch:/ig, '<img src="../images/png/smilies/pinch.png" />'); field = field.replace(/:pirate:/ig, '<img src="../images/png/smilies/pirate.png" />'); field = field.replace(/:pleure:/ig, '<img src="../images/png/smilies/pleure.png" />'); field = field.replace(/:lol:/ig, '<img src="../images/png/smilies/lol.gif" />'); field = field.replace(/:rouge:/ig, '<img src="../images/png/smilies/rouge.png" />'); field = field.replace(/:siffle:/ig, '<img src="../images/png/smilies/siffle.png" />'); field = field.replace(/:\)/ig, '<img src="../images/png/smilies/smile.png" />'); field = field.replace(/:soleil:/ig, '<img src="../images/png/smilies/soleil.png" />'); field = field.replace(/:\(/ig, '<img src="../images/png/smilies/triste.png" />'); field = field.replace(/:unsure:/ig, '<img src="../images/png/smilies/unsure.gif" />'); field = field.replace(/:waw:/ig, '<img src="../images/png/smilies/waw.png" />'); field = field.replace(/:zorro:/ig, '<img src="../images/png/smilies/zorro.png" />'); field = field.replace(/<liste>([\s\S]*?)<\/liste>/g, '<ul>$1</ul>'); field = field.replace(/(<br\s?\/>){0,}<puce>([\s\S]*?)<\/puce>(<br\s?\/>){0,}/g, '<li>$2</li>'); field = field.replace(/\[color="(black|red|green|blue|yellow|purple|olive)"\]([\s\S]*?)\[\/color\]/g, '<span style="color:$1">$2</span>'); for (var i=0, c=smiliesName.length; i<c; i++) { field = field.replace(new RegExp(" " + smiliesName[i] + " ", "g"), " <img src=\"" + smiliesPath + smiliesUrl[i] + "\" alt=\"" + smiliesUrl[i] + "\" /> "); } document.getElementById(previewDiv).innerHTML = field; } document.getElementById(previewDiv).scrollTop = scroll; }
Et au niveau de ton bouton :
faire appel à la fonction preview en passant comme dernier paramètre ( le "force" à true )
preview('textarea', 'previewDiv', true);
merci, j'ai modifier, mais ca ne veut plus afficher le message ;)
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
14 janv. 2019 à 13:34
14 janv. 2019 à 13:34
Message dans la console ?
Et peux tu nous montrer le code complet ?
Et peux tu nous montrer le code complet ?
j'espere que tu pourras cliquer sur le lien
https://codepen.io/anon/pen/QzYbRz
1/ si tu mets un texte sur le texterea et tu appuie sur prévisualisation tu vois un cadre apparaître mais sans ton texte.
2/ et si tu clique ailleur le cadre disparaît hors il devrait laisser le cadre prévisualisation
si tu clique sur les 3 boutton gras italique etc... il ne veut pas se mettre dans le texterea
3/ l console me dit :
merci
si tu ne peut pas lire le lien je te mettrais le code ici
https://codepen.io/anon/pen/QzYbRz
1/ si tu mets un texte sur le texterea et tu appuie sur prévisualisation tu vois un cadre apparaître mais sans ton texte.
2/ et si tu clique ailleur le cadre disparaît hors il devrait laisser le cadre prévisualisation
si tu clique sur les 3 boutton gras italique etc... il ne veut pas se mettre dans le texterea
3/ l console me dit :
Uncaught TypeError: Cannot read property 'scrollTop' of null at preview (nouveau.php:33) at HTMLTextAreaElement.onkeyup (nouveau.php:124) nouveau.php:6 Uncaught TypeError: console.lpreviewDivog is not a function at previsualiser (nouveau.php:6) at HTMLButtonElement.onclick (nouveau.php:130) 2nouveau.php:6 Uncaught TypeError: console.lpreviewDivog is not a function at previsualiser (nouveau.php:6) at HTMLButtonElement.onclick (nouveau.php:130) ***@***:6 ***@***:130
merci
si tu ne peut pas lire le lien je te mettrais le code ici
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
14 janv. 2019 à 17:38
14 janv. 2019 à 17:38
Direct une erreur ligne 4
A remplacer par :
console.lpreviewDivog(contenuTextArea); // pour voir dans la console du navigateur
A remplacer par :
console.log(contenuTextArea); // pour voir dans la console du navigateur
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
14 janv. 2019 à 20:45
14 janv. 2019 à 20:45
<!DOCTYPE html> <html> <head> <title> TEST </title> <meta charset="utf-8"> </head> <body> <!--début du global du formulaire--> <form id="global-nouveau" action="toto.php" method="post" > <fieldset> <!--début du cadre qui sera caché--> <div id="global-nouveau-previsualiser"> <legend>prévisualiser</legend> <div class="nouveau-previsualiser" id="zone-previ"></div> </div> <!--fin du cadre qui sera caché--> <legend>nouveau mesage</legend> <nav id="global-nouveau-button"><ul> <li><button type="button" class="icon-button-gras" onclick="insertTag('<gras>', '</gras>', 'textarea')"></button></li> <li><button type="button" class="icon-button-souligner" onclick="insertTag('<souligner>', '</souligner>', 'textarea')"></button></li> <li><button type="button" class="icon-button-italique" onclick="insertTag('<italique>', '</italique>', 'textarea')"></button></li> </ul></nav> <textarea class="global-modifier-formulaire-textarea" data-autoresize spellcheck="false" placeholder="décrivez ici votre problème : <nav><ul><li>donnez un maximum d'informations (logiciels version etc.....)</li><li>pas d'incitation au piratage, crack etc... </li><li>un bonjour et un merci font toujours plaisir.</li><li>svp, attendez 24 h afin de pouvoir repondre, et veuillez modifier votre sujet</li></ul></nav>" onkeyup="preview(this.id, 'zone-previ',true);" onselect="preview(this.id, 'zone-previ',true);" id="textarea"></textarea> <!--début du boutton de formulaire--> <nav id="global-panel-button-nouveau"><ul><li><button class="icon-button-previsualiser" id="button-previsualiser" type="button" onclick="previsualiser();">prévisualiser</button></li><li><button class="icon-button-ajouter" type="submit">envoyer</button></li></ul></nav> <!--fin du boutton de formulaire--> </fieldset> </form> <script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script> <script type="text/javascript"> // previsualisation function previsualiser(){ var contenuTextArea = $("#nouv-msg").val(); console.log(contenuTextArea); // pour voir dans la console du navigateur //$("#previewDiv").html(contenuTextArea); preview("textarea", 'zone-previ',true); } // afficher et masquer $(document).ready(function(){ $(document).on('click', function(){ if($(this)[0].activeElement.id == "button-previsualiser"){ $("#global-nouveau-previsualiser").css("display", "block"); } else{ $("#global-nouveau-previsualiser").css("display", "none"); } }); //on masque par defaut $("#global-nouveau-previsualiser").css("display", "none"); }); function preview(textareaId, previewDiv, force) { // console.log(textareaId, previewDiv, force); var f = typeof(force)!='undefined' && force != null ? force : false; var chkprevisualisation = $('#previsualisation'); var field = $("#"+textareaId).val(); var scrollDiv = $("#"+previewDiv); if(typeof(scrollDiv)=='undefined' || scrollDiv==null){ alert ('Erreur ! scrollDiv:' + previewDiv + ' inconnu !'); } var scroll = scrollDiv.scrollTop; var previIschecked = typeof(chkprevisualisation)!='undefined' && chkprevisualisation!=null ? chkprevisualisation.checked : false; if ( field && (previIschecked || f)) { var smiliesName = new Array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '>_<', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°'); var smiliesUrl = new Array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png'); var smiliesPath = "http://www.siteduzero.com/Templates/images/smilies/"; field = field.replace(/&/g, '&'); field = field.replace(/</g, '<').replace(/>/g, '>'); field = field.replace(/\n/g, '<br />').replace(/\t/g, ' '); field = field.replace(/<gras>([\s\S]*?)<\/gras>/g, '<strong>$1</strong>'); field = field.replace(/<italique>([\s\S]*?)<\/italique>/g, '<em>$1</em>'); field = field.replace(/<souligne>([\s\S]*?)<\/souligne>/g, '<u>$1</u>'); field = field.replace(/<lien>([\s\S]*?)<\/lien>/g, '<a href="$1">$1</a>'); field = field.replace(/\[url=([\s\S]*?)\]([\s\S]*?)\[\/url\]/ig, '<a href="$1">$2</a>'); field = field.replace(/\[img\]([\s\S]*?)\[\/img\]/ig, '<img src="$1" class="images_postees" alt="Image" />'); field = field.replace(/<citation nom=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>'); field = field.replace(/<citation lien=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>'); field = field.replace(/<citation nom=\"(.*?)\" lien=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$2">Citation : $1</a></span><div class="citation2">$3</div>'); field = field.replace(/<citation lien=\"(.*?)\" nom=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$1">Citation : $2</a></span><div class="citation2">$3</div>'); field = field.replace(/<citation>([\s\S]*?)<\/citation>/g, '<br /><span class="citation">Citation</span><div class="citation2">$1</div>'); field = field.replace(/<taille valeur=\"(.*?)\">([\s\S]*?)<\/taille>/g, '<font size="$1">$2</font>'); field = field.replace(/<position valeur=\"(.*?)\">([\s\S]*?)<\/position>/g, '<p align="$1">$2</p>'); field = field.replace(/<titre1>([\s\S]*?)<\/titre1>/g, '<h2 class="titre1">$1</h2>'); field = field.replace(/<titre2>([\s\S]*?)<\/titre2>/g, '<h3 class="titre2">$1</h3>'); field = field.replace(/<information>([\s\S]*?)<\/information>/g, '<p class="information">$1</p>'); field = field.replace(/<question>([\s\S]*?)<\/question>/g, '<p class="question">$1</p>'); field = field.replace(/<attention>([\s\S]*?)<\/attention>/g, '<p class="attention">$1</p>'); field = field.replace(/:ange:/ig, '<img src="../images/png/smilies/ange.png" />'); field = field.replace(/:angry:/ig, '<img src="../images/png/smilies/angry.gif" />'); field = field.replace(/:blink:/ig, '<img src="../images/png/smilies/blink.gif" />'); field = field.replace(/:clin:/ig, '<img src="../images/png/smilies/clin.png" />'); field = field.replace(/:diable:/ig, '<img src="../images/png/smilies/diable.png" />'); field = field.replace(/:D/ig, '<img src="../images/png/smilies/heureux.png" />'); field = field.replace(/:hihi:/ig, '<img src="../images/png/smilies/hihi.png" />'); field = field.replace(/:huh:/ig, '<img src="../images/png/smilies/huh.png" />'); field = field.replace(/:langue:/ig, '<img src="../images/png/smilies/langue.png" />'); field = field.replace(/:magicien:/ig, '<img src="../images/png/smilies/magicien.png" />'); field = field.replace(/:mechant:/ig, '<img src="../images/png/smilies/mechant.png" />'); field = field.replace(/:ninja:/ig, '<img src="../images/png/smilies/ninja.png" />'); field = field.replace(/:pinch:/ig, '<img src="../images/png/smilies/pinch.png" />'); field = field.replace(/:pirate:/ig, '<img src="../images/png/smilies/pirate.png" />'); field = field.replace(/:pleure:/ig, '<img src="../images/png/smilies/pleure.png" />'); field = field.replace(/:lol:/ig, '<img src="../images/png/smilies/lol.gif" />'); field = field.replace(/:rouge:/ig, '<img src="../images/png/smilies/rouge.png" />'); field = field.replace(/:siffle:/ig, '<img src="../images/png/smilies/siffle.png" />'); field = field.replace(/:\)/ig, '<img src="../images/png/smilies/smile.png" />'); field = field.replace(/:soleil:/ig, '<img src="../images/png/smilies/soleil.png" />'); field = field.replace(/:\(/ig, '<img src="../images/png/smilies/triste.png" />'); field = field.replace(/:unsure:/ig, '<img src="../images/png/smilies/unsure.gif" />'); field = field.replace(/:waw:/ig, '<img src="../images/png/smilies/waw.png" />'); field = field.replace(/:zorro:/ig, '<img src="../images/png/smilies/zorro.png" />'); field = field.replace(/<liste>([\s\S]*?)<\/liste>/g, '<ul>$1</ul>'); field = field.replace(/(<br\s?\/>){0,}<puce>([\s\S]*?)<\/puce>(<br\s?\/>){0,}/g, '<li>$2</li>'); field = field.replace(/\[color="(black|red|green|blue|yellow|purple|olive)"\]([\s\S]*?)\[\/color\]/g, '<span style="color:$1">$2</span>'); for (var i=0, c=smiliesName.length; i<c; i++) { field = field.replace(new RegExp(" " + smiliesName[i] + " ", "g"), " <img src=\"" + smiliesPath + smiliesUrl[i] + "\" alt=\"" + smiliesUrl[i] + "\" /> "); } console.log("Nouvelle valeur field",field , 'previewDiv',previewDiv); $("#global-nouveau-previsualiser").show(); $("#"+previewDiv).html(field); }else{ console.log('Erreur'); console.log("Valeurs dans le if : ",field ,previIschecked , f) } scrollDiv.scrollTop = scroll; } </script> </body> </html>
Merci, pour ton code :
mais il y a juste 3 questions
1/ les balises gras italique etc.... ne se met pas dans le textarea.
2/ quand je met un texte ca s'affiche directement dans zone-previ au lieu que je clique sur le bouton en bas de la page.
3/ quand le message apparaît dans la zone-previ et si je cliques sur sur la page , mon cadre zone-previ disparaît.
4/ c'est à propos des smileys j'ai tester de mettre
field = field.replace(/smiley-1/ig, 'icon-smiley-1:before');
afin d'afficher les smileys des icon via sur ce site https://icomoon.io/app/#/select
quand je met dans le textarea smiley-1 dans la zone previ il met icon-smiley-1:before
si je met une image juste pour tester
field = field.replace(/:smileys1:/ig, '<img src="image/smileys/smileys1.jpg" />');
au lieu d'afficher mon smileys , il m'affiche :smileys1:
merci,
mais il y a juste 3 questions
1/ les balises gras italique etc.... ne se met pas dans le textarea.
2/ quand je met un texte ca s'affiche directement dans zone-previ au lieu que je clique sur le bouton en bas de la page.
3/ quand le message apparaît dans la zone-previ et si je cliques sur sur la page , mon cadre zone-previ disparaît.
4/ c'est à propos des smileys j'ai tester de mettre
field = field.replace(/smiley-1/ig, 'icon-smiley-1:before');
afin d'afficher les smileys des icon via sur ce site https://icomoon.io/app/#/select
quand je met dans le textarea smiley-1 dans la zone previ il met icon-smiley-1:before
si je met une image juste pour tester
field = field.replace(/:smileys1:/ig, '<img src="image/smileys/smileys1.jpg" />');
au lieu d'afficher mon smileys , il m'affiche :smileys1:
merci,
j'ai resolu un souci c'est le point 4 mais neaumoins , il bug
si je mets dans le textaria : smiley-1 il m'affiche bien mon icon-smiley-1
mais par contre si je met dans le textaria smiley-10, il m'affiche le icon-smiley-1 avec 0 au lieu icon-smiley-10
en attendant ta réponse je vais essayer trouver le point 1 et 2
merci
field = field.replace(/smiley-1/ig, '<span class="icon-smiley-1"></span>'); field = field.replace(/smiley-2/ig, '<span class="icon-smiley-2"></span>'); field = field.replace(/smiley-3/ig, '<span class="icon-smiley-3"></span>'); field = field.replace(/smiley-4/ig, '<span class="icon-smiley-4"></span>'); field = field.replace(/smiley-5/ig, '<span class="icon-smiley-5"></span>'); field = field.replace(/smiley-6/ig, '<span class="icon-smiley-6"></span>'); field = field.replace(/smiley-7/ig, '<span class="icon-smiley-7"></span>'); field = field.replace(/smiley-8/ig, '<span class="icon-smiley-8"></span>'); field = field.replace(/smiley-9/ig, '<span class="icon-smiley-9"></span>'); field = field.replace(/smiley-10/ig, '<span class="icon-smiley-10"></span>'); field = field.replace(/smiley-11/ig, '<span class="icon-smiley-11"></span>'); field = field.replace(/smiley-12/ig, '<span class="icon-smiley-12"></span>');
si je mets dans le textaria : smiley-1 il m'affiche bien mon icon-smiley-1
mais par contre si je met dans le textaria smiley-10, il m'affiche le icon-smiley-1 avec 0 au lieu icon-smiley-10
en attendant ta réponse je vais essayer trouver le point 1 et 2
merci
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
15 janv. 2019 à 14:21
15 janv. 2019 à 14:21
normal...
Car dans smiley-10 ... il y a smiley-1
A la place de 1 ... il faudrait 01 -> smiley-01
là tu n'aurais plus ce souci.
Pour le point 2, il suffit de retirer les onkeypress et onkeyup de ton textarea.... ( tu ne sais pas à quoi ils servent ?? .. à déclencher la fonction lors de l'appuie ou le relâchement d'une touche du clavier... c'est pourtant une notion de base du langage... ça m'étonne que tu ne le saches pas ! )
Pour le point 1, ça vient certainement de ta fonction insertTag
mais ce n'est la question initiale qui concerne la prévisualisation... que nous sommes en train de traiter.
Car dans smiley-10 ... il y a smiley-1
A la place de 1 ... il faudrait 01 -> smiley-01
là tu n'aurais plus ce souci.
Pour le point 2, il suffit de retirer les onkeypress et onkeyup de ton textarea.... ( tu ne sais pas à quoi ils servent ?? .. à déclencher la fonction lors de l'appuie ou le relâchement d'une touche du clavier... c'est pourtant une notion de base du langage... ça m'étonne que tu ne le saches pas ! )
Pour le point 1, ça vient certainement de ta fonction insertTag
mais ce n'est la question initiale qui concerne la prévisualisation... que nous sommes en train de traiter.
Merci, j'ai enlever les onkeypress
et pour ca
onkeyup il n'a pas dans textarea
mais ca ne fait rien a chaque fois il supprime mon cadre ;)
pour le point 1
avant
<li style="color:#000000;" onclick="insertTag('<noir>', '</noir>', 'textarea')">noir</li>
là ca fonctionait
mais comme on a modifier le js
et j'ai tenter de modifier juste pour voir
<li style="color:#000000;" onclick="preview ('<noir>', '</noir>', 'textarea')">noir</li>
à mon vis c'est onclick qui fait buguer
pour ton info j'ai mis dans le textarea
data-autoresize spellcheck="false"
avec du jquery
ca permet de taper du texte et ca fait augmenter la hauteur du textarea sans le scrool ;)
et pour ca
onkeyup il n'a pas dans textarea
mais ca ne fait rien a chaque fois il supprime mon cadre ;)
pour le point 1
avant
<li style="color:#000000;" onclick="insertTag('<noir>', '</noir>', 'textarea')">noir</li>
function insertTag(startTag, endTag, textareaId, tagType) {
là ca fonctionait
mais comme on a modifier le js
function preview(textareaId, previewDiv, force) {
et j'ai tenter de modifier juste pour voir
<li style="color:#000000;" onclick="preview ('<noir>', '</noir>', 'textarea')">noir</li>
à mon vis c'est onclick qui fait buguer
pour ton info j'ai mis dans le textarea
data-autoresize spellcheck="false"
avec du jquery
(function($) { $.each($("textarea[data-autoresize]"), function() { var $this = $(this) var resizeTextarea = function(e) { // Ajout pour compter la bordure var offset = e.offsetHeight - e.clientHeight; e.style.height = e.scrollHeight + offset + "px" }; $this.on("keyup input", function() { resizeTextarea(this) }); var lastOverflowY = this.style.overflowY this.style.overflowY = "hidden" resizeTextarea(this) this.style.overflowY = lastOverflowY }); })(jQuery);
ca permet de taper du texte et ca fait augmenter la hauteur du textarea sans le scrool ;)
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
16 janv. 2019 à 07:19
16 janv. 2019 à 07:19
Oulaaaa.....
pour le fait que ça masque... tu as regardé dans ton code d'où ça pouvait venir ??
J'ai trouvé ....En 2 secondes... c'est marqué en toutes lettres....
donc.. ben suffit de retirer
Et puis...
Que vient faire la fonction preview dans ce bout de code ????
La fonction INSERTAG n'a rien à voir avec la fonction PREVIEW
je te rappel que ta question concernait la pévisualisation.
Je considère que le souci est traité.
Maintenant.. si tu as un problème avec la fonction insertag ..; je t'invite à ouvrir une nouvelle discussion propre à ce problème (après avoir mis en résolu celle-ci)
pour le fait que ça masque... tu as regardé dans ton code d'où ça pouvait venir ??
J'ai trouvé ....En 2 secondes... c'est marqué en toutes lettres....
// afficher et masquer $(document).ready(function(){ $(document).on('click', function(){ if($(this)[0].activeElement.id == "button-previsualiser"){ $("#global-nouveau-previsualiser").css("display", "block"); } else{ $("#global-nouveau-previsualiser").css("display", "none"); } });
donc.. ben suffit de retirer
// afficher et masquer $(document).ready(function(){
Et puis...
et j'ai tenter de modifier juste pour voir
<li style="color:#000000;" onclick="preview ('<noir>', '</noir>', 'textarea')">noir</li>
à mon vis c'est onclick qui fait buguer
Que vient faire la fonction preview dans ce bout de code ????
La fonction INSERTAG n'a rien à voir avec la fonction PREVIEW
je te rappel que ta question concernait la pévisualisation.
Je considère que le souci est traité.
Maintenant.. si tu as un problème avec la fonction insertag ..; je t'invite à ouvrir une nouvelle discussion propre à ce problème (après avoir mis en résolu celle-ci)
si je suprime ceux que tu me dit $(document).ready(function(){
ca ne cache pas le cadre et ca ne veut plus s'ecrir ;)
mais ce n'est pas grave resolu ;)
ca ne cache pas le cadre et ca ne veut plus s'ecrir ;)
mais ce n'est pas grave resolu ;)
jordane45
Messages postés
38305
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
16 janv. 2019 à 14:51
16 janv. 2019 à 14:51
ce n'est pas le document ready qu'il faut supprimer... mais ce qu'il y avait en dessous.
je met le code au cas ou s'il y a quelqu’un veut ;)
// previsualisation function previsualiser(){ var contenuTextArea = $("#nouv-msg").val(); console.log(contenuTextArea); // pour voir dans la console du navigateur //$("#previewDiv").html(contenuTextArea); preview("textarea", 'zone-previ',true); } // afficher et masquer $(document).ready(function(){ // $(document).on('click', function(){ // if($(this)[0].activeElement.id == "button-previsualiser"){ // $("#global-nouveau-previsualiser").css("display", "block"); // } // else{ // $("#global-nouveau-previsualiser").css("display", "none"); // } // }); //on masque par defaut $("#global-nouveau-previsualiser").css("display", "none"); });
13 janv. 2019 à 18:01
ensuite, je clique sur
normalement , ca devrait afficher mon texte gras etc....
mais il ne s'affiche pas mon texte
merci
13 janv. 2019 à 18:20
As tu des choses dans la console ?
As tu essayé de voir si ça entrait bien dans la fonction ? (en y mettant un alert par exemple) ? Est-ce qu'il s'affiche ?