Проблема с ЯваСкрипт в Mozilla Firefox 3
Вот JavaScript код, он нужен чтобы вставлять теги форматирования в текстовые поля (использую в администраторской части самодельной CMS):
<script language=JavaScript> function Insert(Text) { element = document.getElementById("text"); element.focus(); if (document.selection) { SelectedText = element.document.selection.createRange(); SelectedText.text = Text; } } </script> А вот так нужный тег вставляется: <input type=button value=' Параграф ' onclick='Insert("<p>")' class="button_"> Ну так вот, в опере 9.27 он работает прекрасно, а в Mozilla Firefox 3.0 не хочет. В обоих браузерах JavaScript включен. Узнал, что огненный лис не поддерживает createRange. Какой функцией его можно заменить? Если не трудно приведите пожалуйста рабочий вариант в FireFox вышеуказанного скрипта. Заранее спасибо. |
|
Цитата:
|
а ты попробуй не copy-paste'ить, а разобраться в том, что там написано, почитать, подумать, вопросы позадавать
|
Ребята, я конечно признаю что я бессовестный лентяй и не хочу разбираться в яваскрипт коде, но все же, может приведете мне измененный вариант моего скрипта? Ну пожалуйста!
|
Цитата:
в таких случаях мы посылаем в раздел работа если кому-то будет интересно, может и напишут за деньгу тем, кто не хочет сам немного поработать для себя здесь не помогают помощь получают те, кто сами прикладывают усилия |
Я проштудировал предложенные статьи, но так и не разобрался.... Ребята, скажите пожалуйста, как можно модифицировать мой скрипт, чтобы он корректно работал в файерфоксе! Я уже совсем замучался!
|
У тебя скрипт написан для IE, то что он работает в Opera - просто везение, разработчики реализовали поддержку майкрософтовского TextRange. Для остальных W3C-совместимых браузеров нужно написать отдельную ветвь кода. В предложеной статье информации больше чем достаточно для решения твоей проблемы. Пока еще ты не показал что там у тебя не получается, чтобы мы могли тебе помочь.
|
У меня есть две функции для перемещения в тексарии. Думаю из них выцепишь, то что тебе поможет
function moveCaretToStart(obj)
{
if (typeof(obj.createTextRange) != 'undefined')
{
var r = obj.createTextRange();
r.collapse(true);
r.select();
}
if (typeof(obj.selectionStart) != 'undefined')
{
obj.setSelectionRange(0,0);
obj.focus();
}
}
function moveCaretToEnd(inputObject)
{
if (typeof(inputObject.createTextRange) != 'undefined')
{
var r = inputObject.createTextRange();
r.collapse(false);
r.select();
}
if (typeof(inputObject.selectionStart) != 'undefined')
{
var end = inputObject.value.length;
inputObject.setSelectionRange(end,end);
inputObject.focus();
}
}
|
| Часовой пояс GMT +3, время: 06:20. |