Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Проблема с ЯваСкрипт в Mozilla Firefox 3 (https://javascript.ru/forum/css-html-firefox-mizilla/3820-problema-s-yavaskript-v-mozilla-firefox-3-a.html)

ScarHead 26.05.2009 21:25

Проблема с ЯваСкрипт в 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 вышеуказанного скрипта. Заранее спасибо.

Octane 26.05.2009 23:00

Range, TextRange и Selection

ScarHead 27.05.2009 09:29

Цитата:

Сообщение от Octane (Сообщение 20142)

Спасибо конечно, но можно совсем для дураков? Пробовал подставлять вышеуказанные функции вместо createRange и так, и сяк - все равно не пашет:cray:

x-yuri 27.05.2009 09:35

а ты попробуй не copy-paste'ить, а разобраться в том, что там написано, почитать, подумать, вопросы позадавать

ScarHead 27.05.2009 09:46

Ребята, я конечно признаю что я бессовестный лентяй и не хочу разбираться в яваскрипт коде, но все же, может приведете мне измененный вариант моего скрипта? Ну пожалуйста!

Gvozd 27.05.2009 10:05

Цитата:

Сообщение от ScarHead
признаю что я бессовестный лентяй и не хочу разбираться в яваскрипт коде

вот ты сам и ответил на свой вопрос.
в таких случаях мы посылаем в раздел работа
если кому-то будет интересно, может и напишут за деньгу

тем, кто не хочет сам немного поработать для себя здесь не помогают
помощь получают те, кто сами прикладывают усилия

ScarHead 27.05.2009 15:46

Я проштудировал предложенные статьи, но так и не разобрался.... Ребята, скажите пожалуйста, как можно модифицировать мой скрипт, чтобы он корректно работал в файерфоксе! Я уже совсем замучался!

Octane 27.05.2009 17:40

У тебя скрипт написан для IE, то что он работает в Opera - просто везение, разработчики реализовали поддержку майкрософтовского TextRange. Для остальных W3C-совместимых браузеров нужно написать отдельную ветвь кода. В предложеной статье информации больше чем достаточно для решения твоей проблемы. Пока еще ты не показал что там у тебя не получается, чтобы мы могли тебе помочь.

progi2007 30.06.2009 16:55

У меня есть две функции для перемещения в тексарии. Думаю из них выцепишь, то что тебе поможет
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, время: 14:48.