dakata__92
Super Moderator
Имам този код и желая да направя така, че когато се подадат тагове под ИЕ да се премества курсора по средата. Под останалите браузери го настроих, но под ИЕ не можах да го изпмайстора :
[js]
//Функция за добавяне на тагове.
function addtags(tag1,tag2,obj)
{
//Ако таг2 е [/color] или [/size] при изпълнение на функцията ще се селектне отново първия option.
if(tag2=="[/color]" || tag2=="[/size]")
{
$("option[value='0']").attr('selected','selected');
}
textarea = document.getElementById(obj);
textarea.focus();
//Internet Explorer
if (document.selection && document.selection.createRange)
{
//Взема се стойноста на селектирания текст.
var sele = document.selection.createRange();
if (sele.parentElement() == textarea)
{
sele.text = tag1 + sele.text + tag2;
}
}
//Mozilla, Chorme...
else
{
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);
var rep = tag1 + sel + tag2;
textarea.value = textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
textarea.scrollTop = scrollTop;
textarea.scrollLeft = scrollLeft;
var cursorpos = start+rep.length-tag2.length;
textarea.setSelectionRange(cursorpos, cursorpos);
}
}
[/js]
Това е кода за другите браузери : [js]var cursorpos = start+rep.length-tag2.length;
textarea.setSelectionRange(cursorpos, cursorpos);
}[/js]
а ето и нещо което намерих за подсказка за ИЕ , но немога да го настроя заради променливата cursors :
var cursorpos=start+rep.length-tag2.length;
[js]
var range=textarea.createTextRange();
range.collapse(true);
range.moveEnd('character', cursorpos);
range.moveStart('character', cursorpos);
range.select();
[/js]
[js]
//Функция за добавяне на тагове.
function addtags(tag1,tag2,obj)
{
//Ако таг2 е [/color] или [/size] при изпълнение на функцията ще се селектне отново първия option.
if(tag2=="[/color]" || tag2=="[/size]")
{
$("option[value='0']").attr('selected','selected');
}
textarea = document.getElementById(obj);
textarea.focus();
//Internet Explorer
if (document.selection && document.selection.createRange)
{
//Взема се стойноста на селектирания текст.
var sele = document.selection.createRange();
if (sele.parentElement() == textarea)
{
sele.text = tag1 + sele.text + tag2;
}
}
//Mozilla, Chorme...
else
{
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);
var rep = tag1 + sel + tag2;
textarea.value = textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
textarea.scrollTop = scrollTop;
textarea.scrollLeft = scrollLeft;
var cursorpos = start+rep.length-tag2.length;
textarea.setSelectionRange(cursorpos, cursorpos);
}
}
[/js]
Това е кода за другите браузери : [js]var cursorpos = start+rep.length-tag2.length;
textarea.setSelectionRange(cursorpos, cursorpos);
}[/js]
а ето и нещо което намерих за подсказка за ИЕ , но немога да го настроя заради променливата cursors :
var cursorpos=start+rep.length-tag2.length;
[js]
var range=textarea.createTextRange();
range.collapse(true);
range.moveEnd('character', cursorpos);
range.moveStart('character', cursorpos);
range.select();
[/js]