1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
| 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 ( 1er if = ie, 2eme ) autres browsers === */
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 "url":
var url = prompt("Lien :");
var attr = 'title="'+prompt('Texte au survol du lien :');+'"';
startTag = '[url="'+url+'" '+attr+'"]';
break;
case "img":
var url = prompt("Nom de l'image :");
var attr = ''+prompt('Texte alternatif :');
startTag = '[img="'+url+'" alt="'+attr+'"]';
endTag ='';
break;
case "+++":
var val = '+++';
startTag = "["+val+']';
endTag = "[/"+val+']';
break;
case "+":
var val = '+';
startTag = "["+val+']';
endTag = "[/"+val+']';
break;
case "clean":
currentSelection = currentSelection.replace("","");
currentSelection = currentSelection.replace("","");
currentSelection = currentSelection.replace("[g]","");
currentSelection = currentSelection.replace("[/g]","");
currentSelection = currentSelection.replace("","");
currentSelection = currentSelection.replace("","");
currentSelection = currentSelection.replace("[+++]","");
currentSelection = currentSelection.replace("[/+++]","");
currentSelection = currentSelection.replace("[+]","");
currentSelection = currentSelection.replace("[/+]","");
currentSelection = currentSelection.replace(/\/g,"");
currentSelection = currentSelection.replace("","");
currentSelection = currentSelection.replace(/\[img="(.*)" alt="(.*)"\]/g,"");
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;
if (tagType)
return false;
}
function preview(textareaId, previewDiv) {
var field = document.getElementById(textareaId).value; // Le contenu du textarea est dans la variable field
//traitement via replace
field = field.replace(/\[/g, '<').replace(/\]/g, '>');//remplace les crochets en <> pour ne pas avoir à tout échapper ensuite
$('#'+previewDiv).load("../scripts/bbcode.php", { texte:field},
function success(data){
console.log("success");
},
function error(data){alert('Une erreur s\'est produite, contacter votre webmaster');});
} |