Проблема с ЯваСкрипт в 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, время: 09:09. |