document.sélection.createRange() ne fonctionne pas sous IE
J'ai essayé de faire un simple de facturation à l'utilisation de l'éditeur, mais le document.sélection.createRange() ne fonctionne pas sous IE, et il ne comprend pas le texte surligné(essayez d'alerter le texte en surbrillance encore rien obtenir). Je ne suis pas encore en mesure de trouver la raison et de résoudre cela.
Vous pouvez jeter un oeil à ce script en action ici
window.onload = function () {
var ubb = document.getElementById('ubb_code');
var ubba = ubb.getElementsByTagName('a');//ubb buttons
var textarea = document.getElementsByTagName('textarea')[0];//editable textarea filed
//onclick to insert ubbcode
ubba[0].onclick = function() {
tag('[b]','[/b]');
};
//function used to insert ubbcode
function tag(tag1,tag2){
//code for IE
if (document.selection){
textarea.focus();
var sel = textarea.document.selection.createRange();//It DOES NOT work!
//alert(sel.text);
sel.text = tag1 + sel.text + tag2;
}else{
//code for none-IE webbrowsers
var len = textarea.value.length;
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;
var sel = textarea.value.substring(start, end);
//alert(sel);
var rep = tag1 + sel + tag2;
textarea.value = textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
textarea.scrollTop = scrollTop;
textarea.scrollLeft = scrollLeft;
}
}
si vous utilisez document.sélection.createRange() pour IE et veulent garder le texte en surbrillance lorsque vous déclenchez une fonction, utilisez onmousedown au lieu de onclick, cause onclick va détruire la sélection dans IE!
OriginalL'auteur marcel | 2012-04-26
Vous devez vous connecter pour publier un commentaire.
Mise à jour : IE9 prend en charge cette fonctionnalité
http://msdn.microsoft.com/en-us/library/ie/ms536394(v=vs. 85).aspx
OriginalL'auteur Amitd
Dans IE11,la sélection de l'objet n'est plus pris en charge.
vous pouvez utiliser la fenêtre.getSelection pour obtenir le même comportement.
Pour plus d'informations, veuillez consulter http://msdn.microsoft.com/en-us/library/ie/ms535869(v=vs. 85).aspx
var range = fenêtre.getSelection().getRangeAt(0)
OriginalL'auteur Anurag Ratna