ricici123 | Bonjour Je suis entrain de créer mon propre langage de mise en page et j'ai un problème lors de l'apercu.
j'ai créer des boutons pour que le visiteur puisse modifier l'alignement de son code et malheureusement le code de prévisualisation ne marche pas.
Voici le code
Code :
- var timer=0;
- var ptag=String.fromCharCode(5,6,7);
- function previsualisation()
- {
- t=document.formulaire.textarea.value
- t=code_to_html(t)
- if (document.getElementById) document.getElementById("prev" ).innerHTML=t
- if (document.formulaire.auto.checked) timer=setTimeout(previsualisation,1)
- <!-- le "1" est le temps que met le texte à s'afficher, "1" : le texte s'affichera en même temps que l'on écrit (en s) -->
- }
- function automatique()
- {
- if (document.formulaire.auto.checked) previsualisation() <!-- si on a cocher la case d'aperçu automatique -->
- }
- function code_to_html(t) {
- t=nl2khol(t)
- // balise Gras <!-- on lui dis que telles balises correspondent à tels codes en HTML -->
- t=deblaie(/(\<\/gr\> )/g,t)
- t=remplace_tag(/\<gr\>(.+)\<\/gr\>/g,'<span style="font-weight: bold;">$1</span>',t)
- t=remblaie(t)
- //balise position gauche
- t=deblaie(/(\<\/position\> )/g,t)
- t=remplace_tag(/\<position style=gauche\>(.+)\<\/position\>/g,'<div style="text-align: left;">$1</div>',t)
- t=remblaie(t)
- //balise position droite
- t=deblaie(/(\<\/position\> )/g,t)
- t=remplace_tag(/\<position style=gauche\>(.+)\<\/position\>/g,'<div style="text-align: left;">$1</div>',t)
- t=remblaie(t)
- // tout le code qui suit c'est pour transformer toutes les balises, comme les preg_replace en PHP
- function deblaie(reg,t) {
- textarea=new String(t);
- return textarea.replace(reg,'$1\n');
- }
- function remblaie(t) {
- textarea=new String(t);
- return textarea.replace(/\n/g,'');
- }
- function remplace_tag(reg,rep,t) {
- textarea=new String(t);
- return textarea.replace(reg,rep);
- }
- function nl2br(t) {
- textarea=new String(t);
- return textarea.replace(/\n/g,'<br/>');
- }
- function nl2khol(t) {
- textarea=new String(t);
- return textarea.replace(/\n/g,ptag);
- }
- function unkhol(t) {
- textarea=new String(t);
- return textarea.replace(new RegExp(ptag,'g'),'\n');
- }
|
voici l'autre partie du code si sa vous aide
Code :
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
- <head>
- <title>ninCode en Javascript</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- <link rel="stylesheet" media="screen" type="text/css" title="style" href="style.css"/>
- <script language="javascript" type="text/javascript" src="prev.js"></script><!-- on appelle le fichier prev.js pour faire fonctionne la prévisualisation -->
- <script language="Javascript">
- function nincode(nindebut, ninfin)
- {
- var input = window.document.formulaire.textarea;
- input.focus();
- /* pour IE (toujous un cas appar lui ;) )*/
- if(typeof document.selection != 'undefined')
- {
- var range = document.selection.createRange();
- var insText = range.text;
- range.text = nindebut + insText + ninfin;
- range = document.selection.createRange();
- if (insText.length == 0)
- {
- range.move('character', -ninfin.length);
- }
- else
- {
- range.moveStart('character', nindebut.length + insText.length +ninfin.length);
- }
- range.select();
- }
- /* pour les navigateurs plus récents que IE comme Firefox... */
- else if(typeof input.selectionStart != 'undefined')
- {
- var start = input.selectionStart;
- var end = input.selectionEnd;
- var insText = input.value.substring(start, end);
- input.value = input.value.substr(0, start) + nindebut + insText + ninfin + input.value.substr(end);
- var pos;
- if (insText.length == 0)
- {
- pos = start + nindebut.length;
- }
- else
- {
- pos = start +nindebut.length + insText.length + ninfin.length;
- }
- input.selectionStart = pos;
- input.selectionEnd = pos;
- }
- /* pour les autres navigateurs comme Netscape... */
- else
- {
- var pos;
- var re = new RegExp('^[0-9]{0,3}$');
- while(!re.test(pos))
- {
- pos = prompt("insertion (0.." + input.value.length + " ):", "0" );
- }
- if(pos > input.value.length)
- {
- pos = input.value.length;
- }
- var insText = prompt("Veuillez taper le texte" );
- input.value = input.value.substr(0, pos) + nindebut + insText + ninfin + input.value.substr(pos);
- }
- }
- function smilies(img)
- {
- window.document.formulaire.textarea.value += '' + img + '';
- }
- function imagetraitement()
- {
- var lien_image=prompt('Recopiez le lien vers votre image','ici');
- if(lien_image!=null)
- {
- window.document.formulaire.textarea.value += '' +'<image lien='+ lien_image +'/>'+ '';
- }
- }
- function lien_traitement()
- {
- var lien=prompt('Recopiez votre lien','ici');
- var lien_nom=prompt('Mettez ici le nom qui apparaitra dans la page','ici');
- if(lien!=null && lien_nom!=null)
- {
- window.document.formulaire.textarea.value += '' +'<lien adresse='+ lien +'>'+ lien_nom+'</lien>'+'';
- }
- }
- </script>
- </head>
- <body>
- <form method="post" action="un_page.html" name="formulaire">
- <!--Marche -->
- <input type="button" id="gras" name="gras" value="Gras" onClick="javascript:nincode('<gr>', '</gr>');return(false)" />
- <input type="button" id="italic" name="italic" value="Italic" onClick="javascript:nincode('<it>', '</it>');return(false)" />
- <input type="button" id="souligner" name="souligner" value="souligner" onClick="javascript:nincode('<soul>', '</soul>');return(false)" />
- <input type="button" id="barrer" name="barrer" value="barrer" onClick="javascript:nincode('<bar>', '</bar>');return(false)" />
- <select name ="titre" id="titre">
- <option value="titre1" onClick="javascript:nincode('<tit1>','</tit1>');return(false)">Titre très important</option>
- <option value="titre2" onClick="javascript:nincode('<tit2>','</tit2>');return(false)">Titre important</option>
- <option value="titre3" onClick="javascript:nincode('<tit3>','</tit3>');return(false)">sous-titre</option>
- </select
- <!-- pour permettre la mise en page de son texte -->
- <input type="image" src="image/gauche.jpg" onClick="javascript:nincode('<position style=gauche>','</position>');return(false)"/>
- <input type="image" src="image/droite.jpg" onClick="javascript:nincode('<position style=droite>','</position>');return(false)"/>
- <input type="image" src="image/centrer.jpg" onClick="javascript:nincode('<position style=centrer>','</position>');return(false)"/>
- <input type="image" src="image/justifier.jpg" onClick="javascript:nincode('<position style=justifier>','</position>');return(false)"/>
- <!--Pour personnalisez la taille du texte-->
- <select name ="tailletexte" id="tailletexte">
- <option value="tres_tres_petit" onClick="javascript:nincode('<taille hauteur=trestrespetit>','</taille>');return(false)">trés trés petit</option>
- <option value="tres_petit" onClick="javascript:nincode('<taille hauteur=trespetit>','</taille>');return(false)">trés petit</option>
- <option value="petit" onClick="javascript:nincode('<taille hauteur=petit>','</taille>');return(false)">moyen</option>
- <option value="moyen" onClick="javascript:nincode('<taille hauteur=moyen>','</tit3>');return(false)">grand</option>
- <option value="grand" onClick="javascript:nincode('<taille hauteur=grand>','</taille>');return(false)">trés grand</option>
- <option value="tres_grand" onClick="javascript:nincode('<taille hauteur=tresgrand>','</taille>');return(false)">sous-titre</option>
- <option value="tres_tres_grand" onClick="javascript:nincode('<taille hauteur=trestresgrand>','</taille>');return(false)">trés trés grand</option>
- </select>
- <input type="button" id="cit" name="cit" value="citation" onClick="javascript:nincode('<citation nompers=>','</citation>');return(false)" />
- <!-- pour inserer une image-->
- <input type="button" id="image" name="image" value="Image" onClick="javascript:imagetraitement();return(false)" />
- <!--pour inserer un lien -->
- <input type="button" id="lien" name="lien" value="Lien" onClick="javascript:lien_traitement();return(false)" />
- <!--pour les couleur-->
- <select name ="couleur" id="couleur">
- <option value="noir" onClick="javascript:nincode('<couleur nom=noir>','</couleur>');return(false)"class="noir"> couleur noir</option>
- <option value="argent" onClick="javascript:nincode('<couleur nom=argent>','</couleur>');return(false)"class="argent"> couleur argent</option>
- <option value="gris" onClick="javascript:nincode('<couleur nom=gris>','</couleur>');return(false)"class="gris"> couleur gris</option>
- <option value="rouge" onClick="javascript:nincode('<couleur nom=rouge>','</couleur>');return(false)"class="rouge"> couleur rouge</option>
- <option value="vertcler" onClick="javascript:nincode('<couleur nom=vertclair>','</couleur>');return(false)"class="vertcler"> couleur vert clair</option>
- <option value="vert" onClick="javascript:nincode('<couleur nom=vert>','</couleur>');return(false)"class="vert"> couleur vert</option>
- <option value="jaune" onClick="javascript:nincode('<couleur nom=jaune>','</couleur>');return(false)"class="jaune"> couleur jaune</option>
- <option value="olive" onClick="javascript:nincode('<couleur nom=olive>','</couleur>');return(false)"class="olive"> couleur argent</option>
- <option value="bleu" onClick="javascript:nincode('<couleur nom=bleu>','</couleur>');return(false)"class="bleu"> couleur bleu</option>
- <option value="bleufoncer" onClick="javascript:nincode('<couleur nom=bleufoncer>','</couleur>');return(false)"class="bleufoncer"> couleur bleu foncé</option>
- </select
- <!--Pas été modifié, les smiley perso au site sont en création -->
- <img src="http://siteduzero.com/Templates/images/smilies/smile.png" title="" alt="" onClick="javascript:smilies(':D');return(false)" />
- <br />
- <input name="auto" id="auto" type="checkbox" onClick="automatique()" /> <label for="auto">Prévisualisation automatique</label>
- <!-- on créer la case à cocher pour un prévisualisation automatique -->
- <br />
- <textarea cols=35 rows=10 id="textarea" name="textarea">C'est dans ce textarea que va s'afficher les balises ninCode.</textarea>
- <br />
- <input type="button" value="Prévisualiser" onClick="previsualisation();return(false)" /><!-- ce bouton va permettre aux utilisateurs de d'avoir un aperçu quand ils le veulent, pas en direct -->
- <div style="border: 1px dashed #000000; padding: 0.2em; height: 200px; overflow: auto; width: 19%;" align="left" id="prev"></div>
- <!-- on créer un div avec quelques caractéristique, on lui donne un nom et on ne le remplit pas, on le laisse vide -->
- <input type="submit" name="submit" value="Envoyer" />
- </form>
- </body>
- </html>
|
Merci de votre lecture et éventuellement de votre aide
|