Archives des forums MMO/MMORPG > Forums divers > Problèmes, questions et suggestions > Inserer les smileys et les tags ou on veut dans le texte
Inserer les smileys et les tags ou on veut dans le texte
Par le lama de lima le 14/12/2002 à 2:40:39 (#2783101)
Il suffirait ( :p ) de faire une fonction qui détecte le point ou se trouve le curseur, et faire l'insertion a cet endroit. Il me semble que cela ne fonctionne "qu" 'avec IE... ok mais ca serait pas si mal si 90 % des internautes pouvaient mettre en forme + simplement leurs textes ;)
Par Arkanne le 14/12/2002 à 3:05:07 (#2783208)
Par Erkethan le 14/12/2002 à 3:10:50 (#2783232)
Le plus simple, c'est que tu intègre tes smilies et tags au fur et à mesure dans la rédaction, comme cela tu ne sera pas géné :)
Pis, a force, tu connaitra les codes par coeur, et n'aura plus recours au boutons :)
Par Conrad McLeod le 14/12/2002 à 7:32:34 (#2783710)
Par le lama de lima le 15/12/2002 à 7:01:26 (#2791064)
IE a partir de la version 5.5 peut detecter le curseur et placer le smiley la ou se trouve le curseur avant de cliquer sur ledit smiley.
Il parait que ce comportement JS est + ou - bien interpreté par les autres nav, mais j'ai pas testé. En tout cas avec IE ca fonctionne :)
Je pense pas que je puisse donner l'url d'un forum qui le fait fonctionner (pas de pub), mais la fonction se trouve dans ce souk d'apres un rapide coup d'oeil au source :
(pas le temps de decortiquer)
var style = new Array('g','/g','i','/i','s','/s','email','/email','lien=','/lien','img','/img','quote','/quote','fixed','/fixed','cpp','/cpp','url','/url');
var stockage = new Array('0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0');
lien="http://";
function MM_findObj(n, d) { //v3.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&id.layers.length;i++) x=MM_findObj(n,d.layers.document); return x;
}
function storeCaret (textEl)
{
if (textEl.createTextRange)
textEl.caretPos = document.selection.createRange().duplicate();
}
function insertAtCaret (textEl, text)
{
if (textEl.createTextRange && textEl.caretPos)
{
var caretPos = textEl.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
}
}
function insertInCaret (textEl, text, text2)
{
if (textEl.createTextRange && textEl.caretPos)
{
var caretPos = textEl.caretPos;
selectedtext = caretPos.text;
caretPos.text =caretPos.text.charAt(caretPos.text.length - 1) == '' ? text + '' : text;
caretPos.text = caretPos.text + selectedtext + text2;
}
}
function palette(id,vernav)
{
if (vernav>=4)
{
MM_findObj('contenu').focus();
if (MM_findObj('contenu').createTextRange && MM_findObj('contenu').caretPos)
{
var caretPos = MM_findObj('contenu').caretPos;
if (caretPos.text.length>0)
{
if (id!=8)
{
insertInCaret(MM_findObj('contenu'),"["+style[id]+"]","["+style[id+1]+"]");
}
else
{
geturl = prompt("veuillez entrer l'url",'http://');
insertInCaret(MM_findObj('contenu'),"["+style[id]+geturl+"]","["+style[id+1]+"]");
}
}
else
{
if ( (countbalise('['+style[id],'contenu')+countbalise('['+style[id+1],'contenu'))%2 == 0)
{
if (id!=8)
{
insertAtCaret(MM_findObj('contenu'),"["+style[id]+"]");
}
else
{
geturl = prompt("veuillez entrer l'url",'http://');
insertAtCaret(MM_findObj('contenu'),"["+style[id]+geturl+"]");
}
}
else
{
insertAtCaret(MM_findObj('contenu'),"["+style[id+1]+"]");
}
MM_findObj('contenu').focus()
}
}
}
else
{
if (stockage[id] == '0')
{
var temp = document.hop.contenu.value;
document.hop.contenu.value=temp+' '+'['+style[id]+']';
stockage[id] = '1';
}
else
{
var temp = document.hop.contenu.value;
document.hop.contenu.value=temp+'['+style[id+1]+']'+' ';
stockage[id] = '0';
}
}
}
function countbalise(b,ch)
{
count = 0;
pos = MM_findObj(ch).value.indexOf(b);
while ( pos != -1 )
{
count++;
pos = MM_findObj(ch).value.indexOf(b,pos+1);
}
return count;
}
function insertElt(MyString,vernav)
{
if (vernav>=4)
{
MM_findObj('contenu').focus();
if ((MM_findObj('contenu').createTextRange) && (MM_findObj('contenu').caretPos))
{
var caretPos = MM_findObj('contenu').caretPos;
if (caretPos.text.length>0)
insertInCaret(MM_findObj('contenu'),MyString,");
else
insertAtCaret(MM_findObj('contenu'),MyString);
}
}
else
{
var temp = document.hop.contenu.value;
document.hop.contenu.value=temp+MyString;
}
}
function insertTag(MyString,vernav)
{
if (vernav>=4)
{
MM_findObj('contenu').focus();
if (MM_findObj('contenu').createTextRange && MM_findObj('contenu').caretPos)
{
var caretPos = MM_findObj('contenu').caretPos;
if (caretPos.text.length>0)
{
insertInCaret(MM_findObj('contenu'),"["+MyString+"]","[/"+MyString+"]");
}
else
{
if ( (countbalise('['+MyString,'contenu')+countbalise('[/'+MyString,'contenu'))%2 == 0)
{
insertAtCaret(MM_findObj('contenu'),"["+MyString+"]");
}
else
{
insertAtCaret(MM_findObj('contenu'),"[/"+MyString+"]");
}
MM_findObj('contenu').focus();
}
}
}
else
{
if (stockage[12] == '0')
{
var temp = document.hop.contenu.value;
document.hop.contenu.value=temp+' '+'['+MyString+']';
stockage[12] = '1';
}
else
{
var temp = document.hop.contenu.value;
document.hop.contenu.value=temp+'[/'+MyString+']'+' ';
stockage[12] = '0';
}
}
}
bon courage :p
Par Emvé Anovel le 15/12/2002 à 10:36:17 (#2791452)
JOL Archives 1.0.1
@ JOL / JeuxOnLine