Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> установка фокуса в конец строки! 
:(
    Опции темы
HappyMan
Дата 25.3.2005, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



устанавливаю фокус в текс. поле. Как сделать чтобы он(каретка) устанавливалась в конец строки а не в начало?


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
sergejzr
Дата 25.3.2005, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Ты имеешь ввиду, после всего текста в поле?


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Sardar
Дата 25.3.2005, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Под оперой до версий 7 никак, под Мозиллой ставим selection(Start|End) на последний символ, под ИЕ селектируем всё и коллапсируем в конец(TextRangeInstance.collapse(false)):


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Sardar
Дата 25.3.2005, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Вот кодом:
Код
var o=document.getElementById("test");
o.focus();
if(document.selection) {
  var s=document.selection.createRange();
  if(s.parentElement().tagName=="INPUT") {
    s.moveEnd("character", o.value.length);
    s.select();
    s.collapse(false);
    s.select();
  }
} else o.selectionEnd=o.selectionStart=o.value.length;



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
HappyMan
Дата 25.3.2005, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



sergej.z
да, после всего текста
Добавлено @ 18:20
Sardar
хмм... я думал это одной строчкой можно сделать..


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
sergejzr
Дата 25.3.2005, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Вот как работает код Sardar'a
http://files.vingrad.ru/sergej.z/js/movecarret.html

Одной строкой не обойдёшься smile Sardar уже очень коротко написал smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Sardar
Дата 25.3.2005, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Одной строчкой по моему никак. В ИЕ за место коллапсирования селекции можно передвинуть начало и конец селекции в конец текста. Но сути не меняет.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
HappyMan
Дата 25.3.2005, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



sergej.z
Sardar
не хочу растраивать, но не под Оперой не под ИЕ не заработало..
Добавлено @ 18:43
или это токо у меня?
Добавлено @ 18:45
под Оперой если там текст выделить и нажать на кнопку то он его девыделит и потом опять выделит, по сути - моргнет..не знаю как обьяснить.
Добавлено @ 18:46
а под ИЕ или ничего не сделает или переместит в начало
Добавлено @ 18:47
явно не так должен работать..


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
HappyMan
Дата 25.3.2005, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



Sardar
sergej.z
у вас нормально работает?


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Sardar
Дата 25.3.2005, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Я же сказал под Оперой до версии 7 никак, под Оперой 8 есть возможность, но как всегда их selection подглючивает, пока мы его не изучили.

Да, sergej.z разметку изменил, поставив не инпут, а текстареа, в этой строке:
if(s.parentElement().tagName=="INPUT") мы обрываемся smile
Строка нужна т.к. селекцию мы можем иметь в любом месте докуемента. Но была еще и ошибка с нахождением конца селекции, вот так будет работать правильно:
Код
function setCarret()  {
    var o=document.getElementById("test");
    o.focus();
    if(document.selection)  {
       var s=document.selection.createRange(), pos;
        if((pos="INPUTTEXTAREA".indexOf(s.parentElement().tagName.toUpperCase()))==0 || pos==5) {
           s.moveToElementText(o);
           s.collapse(false);
           s.select();
       }
    } else o.selectionEnd=o.selectionStart=o.value.length;
}



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
sergejzr
Дата 25.3.2005, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Обновил smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
HappyMan
Дата 25.3.2005, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



Sardar
sergej.z
Во! Щас все ок! большое спасибо!


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
HappyMan
Дата 26.3.2005, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



sergej.z
Sardar
а если у меня не текстАреа а простое текстовое поле, как изменится данная строчка:

Код

if((pos="INPUTTEXTAREA".indexOf(s.parentElement().tagName.toUpperCase()))==0 || pos==5) {


????


и можно ли вот это:
Код

var o=document.getElementById("test");


заменить на:
Код

var o=parent.myFRAME.document.forms.myTEXTField.message;


????

спрашиваю потому что кое что не работает(после того как под свои нужды начал подгонять)
т.е он просто фокус устанавливает... ито с ошибкой в этой строке:
Код

s.moveToElementText(o);


Ошибка: Invalid arguments


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Sardar
Дата 26.3.2005, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(HappyMan @ 25.3.2005, 23:34)
как изменится данная строчка:

Эту строчку не меняй, она вроде под все текстовые поля, ну кроме древних isindex.
Цитата(HappyMan @ 25.3.2005, 23:34)
заменить на:

Да, нам нужно получить обьект - текстовое поле.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
HappyMan
Дата 26.3.2005, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



Sardar
так почему же тогда ошибка и не работает?


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Sardar
Дата 26.3.2005, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Поставь alert(o) - убедись что там действительно обьект, а не null.

Выложи код, посмотрим.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
HappyMan
Дата 27.3.2005, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



Код собственно почти такой же как и был:

Код

  <script>
 function setCarret()  {
    var o=parent.myFRAME.document.forms.textFIELD.message;
    o.focus();
    if(document.selection)  {
      var s=document.selection.createRange(), pos;
        if((pos="INPUTTEXTAREA".indexOf(s.parentElement().tagName.toUpperCase()))==0 || pos==5) {
           alert(o);
           s.moveToElementText(o);
           s.collapse(false);
           s.select();
       }
    } else o.selectionEnd=o.selectionStart=o.value.length;
}
  </script>


кроме этой строчки конечно же:
Код

    var o=parent.myFRAME.document.forms.textFIELD.message;
[s]

alert(o); - выдает "[object]"

вот такие вот дела... не работает и выскакивает ошибка(см. пост выше)..


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
sergejzr
Дата 27.3.2005, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Ты код ХТМЛ дай smile
не гадать же, где у тебя находится smile
Код

parent.myFRAME.document.forms.textFIELD.message;




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
HappyMan
Дата 27.3.2005, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



Код

<html>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<frameset rows="0,*">
<frame NORESIZE FRAMEBORDER=0 name=y1 src=y1.php>
<frameset rows="*,30">
    <frameset cols="*,22%">
<frame FRAMEBORDER=0 name="main" src="x1.php" scrolling="auto">
        <frame name="k1" src="k1.php" FRAMEBORDER=0 scrolling="yes">>
</frameset>
  <frame NORESIZE FRAMEBORDER=0 name="myFRAME" src="y2.php" scrolling="no" FRAMEBORDER=0>
</frameset>
</frameset>
</html>



это чтоли?

Это сообщение отредактировал(а) HappyMan - 27.3.2005, 17:55


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Sardar
Дата 27.3.2005, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(HappyMan @ 25.3.2005, 23:34)
т.е он просто фокус устанавливает... ито с ошибкой в этой строке:
s.moveToElementText(o);

Смотим в справочнике: http://msdn.microsoft.com/workshop/author/...elementtext.asp

Значит нам нужен текстовый элемент. Текстареа и текстовые поля тоже работают, селектируется их содержимое. Если обьект существует, но является ошибочным аргументом для этой функции, то это либо ошибка браузера, либо обьект не HTML элемент, либо есть какая то закавыка в механизме селекции, которую не учли smile Я почти уверен что проблема во втором варианте, потому опроси:
Код
alert(o);  //[object]
alert(o.tagName); //TEXTAREA или INPUT
alert(o.nodeType); //1 - HTML нода

Если хоть какая нибудь строка выдаст не тот ответ что в коментарии, то пересматриваем твой код(вёрстка + вызов).


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
HappyMan
Дата 27.3.2005, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



sergej.z
ЯваСкрипт у меня встроен в ПХП сценарий если ты о нем smile


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Sardar
Дата 27.3.2005, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(HappyMan @ 27.3.2005, 16:53)
это чтоли?

Нет, вёрстка формы.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
HappyMan
Дата 27.3.2005, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



Sardar

вот что выдал:

Код

alert(o);  -------------------- [object]    
alert(o.tagName); ----------    INPUT    
alert(o.nodeType); -----------  1

Добавлено @ 18:05
Код

...
echo"<form method='post' name='xxx'>".
    "<tr><td ><input name='message' type='text' >
</form></td></tr>";
...

Добавлено @ 18:08
упс...

у меня там так:

Код

    var o=parent.myFRAME.document.forms.ххх.message;



--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
HappyMan
Дата 27.3.2005, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



удалено мною
Добавлено @ 18:15
насколько я понял весь трабл в том что текстовое поле находится в другом Фрейме и в форме ххх и текстовое поле обычное а не ТЕКСТАРЕЯ..

Это сообщение отредактировал(а) HappyMan - 27.3.2005, 18:14


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Sardar
Дата 27.3.2005, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(HappyMan @ 27.3.2005, 17:12)
и текстовое поле обычное а не ТЕКСТАРЕЯ..

Нет здесь ошибки быть не может, проверка на input и textarea.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
HappyMan
Дата 28.3.2005, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



кароче я уже запутался.. выкладываю исходник
Добавлено @ 22:46
если лень какчать:

index.html:
Код

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<frameset rows=240,* framespacing="0" border="0" frameborder="0">
        <frame name="frameUp" src="1.htm" scrolling="auto">
        <frameset cols="150">
                <frame name="frameDown" src="2.htm" scrolling="auto">
        </frameset>
<noframes>
<body>
</body>
</noframes>
</frameset>
</html>


1.htm:
Код

<html>
 <head>
  <script>
 function setCarret()  {
    var o=parent.frameDown.myForm.T1.message;
    o.focus();
    if(document.selection)  {
       var s=document.selection.createRange(), pos;
        if((pos="INPUTTEXTAREA".indexOf(s.parentElement().tagName.toUpperCase()))==0 || pos==5) {
           s.moveToElementText(o);
           s.collapse(false);
           s.select();
       }
    } else o.selectionEnd=o.selectionStart=o.value.length;
}
  </script>
 </head>
 <body>
 <br/>
 <input type="button" value="Поставть каретку в конец поля" onclick="javascript:setCarret()">
 </body>
 </html>


2.htm:
Код

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 2</title>
</head>

<body bgcolor="#DFDFDF">

<form method="POST" name="myForm" action="--WEBBOT-SELF--">
    <p><input type="text" name="T1" size="60" value="Suda nada fokus v konec stroki!"></p>
</form>



</body>

</html>

Добавлено @ 22:47
ИМХО проблема тут:

Код

var o=parent.frameDown.myForm.T1.message;


Это сообщение отредактировал(а) HappyMan - 28.3.2005, 22:45

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  sample.zip


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
sergejzr
Дата 28.3.2005, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Почему бы не сделать так?
http://files.vingrad.ru/sergej.z/js/carret/index.htm


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
HappyMan
Дата 29.3.2005, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



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

ругается на эту строчку:
Код

    var o=parent.chat2.document.getElementById('mes');


пишет: parent.chat2.document is null or not an object

и соответственно сюда он не заходит:
Код

        if((pos="INPUTTEXTAREA".indexOf(s.parentElement().tagName.toUpperCase()))==0 || pos==5) 


какие еще могут быть варианты? (имею ввиду ту строчку)
Добавлено @ 18:45
Код

...
</frameset>
  <frame NORESIZE FRAMEBORDER=0 name="chat2" src="input.php" scrolling="no" FRAMEBORDER=0>
</frameset>
...

Добавлено @ 18:46
Код

echo"<form method='post' name='myForm'>".
    "<tr><td><input name='mes' type='text' maxsize='400' size='65'> <input type=submit value=Send></form></td></tr>";
[s]


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Sardar
Дата 29.3.2005, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Может быть фрейм не загрузился, ты как функцию вызываешь, по body.onLoad ? smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
sergejzr
Дата 29.3.2005, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Да нет, у тебя name="mes" а вызываешь ты по getElementbyId("mes").

Здесь два выхода или пиши id="mes" полю, или getElementbyName("mes") в функции smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
HappyMan
Дата 29.3.2005, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



на этот раз ошибка тут:
Код

  s.collapse(false);


Invalid argument


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Aliance
Дата 29.3.2005, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Цитата(sergej @ 29.3.2005, 20:26)
Здесь два выхода или пиши id="mes" полю, или getElementbyName("mes") в функции

sergej.z, такого нет :-))))
Есть document.getElementsByName("имя_элемента")
PM MAIL WWW ICQ Skype   Вверх
HappyMan
Дата 29.3.2005, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



функцию вызываю так:
Код

echo "<tr><td height='3' align='center'><a  onclick='setCarret()'></a>";

Добавлено @ 20:46
с вызодом ф-ции проблем нету т.к сообщения выскакивают

Это сообщение отредактировал(а) HappyMan - 29.3.2005, 20:46


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
sergejzr
Дата 29.3.2005, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Si señor, ошибся малость smile
Делай по ID smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
HappyMan
Дата 29.3.2005, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



если делать так:
Код

var o=parent.chat2.document.getElementsByName('myText');


то пишет что: Обьект не поддерживает данный метод или св-во. (на линии 4)
Добавлено @ 20:49
sergej.z
если по ИД то см. самый верхний пост 3-ей страницы smile


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
sergejzr
Дата 29.3.2005, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Метод возвращает array.
Юзай:
var o=parent.chat2.document.getElementsByName('myText')[0]
Добавлено @ 20:52
Поэтому ИД лучше


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Aliance
Дата 29.3.2005, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Яем не нравится пример (см. ссылку sergej.z), который тебе дали? У меня работает.
PM MAIL WWW ICQ Skype   Вверх
HappyMan
Дата 29.3.2005, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



окончательный вариант:
Код

  <script>
 function setCarret()  {
    var o=parent.chat2.document.getElementsByName("mes")[0];
    o.focus();
    if(document.selection)  {
      var s=document.selection.createRange(), pos;
        if((pos="INPUTTEXTAREA".indexOf(s.parentElement().tagName.toUpperCase()))==0 || pos==5) {
           s.moveToElementText(o);
           s.collapse(false);
           s.select();
       }
    } else o.selectionEnd=o.selectionStart=o.value.length;
}
  </script>


не нравится 8 строчка
Добавлено @ 20:58
Код

s.collapse(false);
Invalid Argument!

Добавлено @ 20:59
Aliance
Мне-то он как раз очень нравится.. токо когда я пытаюсь под свои нужды преобразовть начинаются замуты
Добавлено @ 21:01
все должно работать.. не понимаю в чем дело...

Это сообщение отредактировал(а) HappyMan - 29.3.2005, 21:00


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Sardar
Дата 29.3.2005, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



HappyMan так, чувствую это не будет разруленно никогда, давай ссылки на страницы с полным кодом.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
sergejzr
Дата 29.3.2005, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Я кстати тоже её переписал smile
Код


 function setCarret()  {
    var o=parent.frameDown.document.getElementById('myText');
    o.focus();
    if(document.selection)  {
       var s=document.selection.createRange(), pos;

        if((pos="INPUTTEXTAREA".indexOf(s.parentElement().tagName.toUpperCase()))==0 || pos==5) {
           s.moveStart("character",o.value.length);
         //  s.moveToElementText(o);
           s.collapse(false);
           s.select();
       }
    } else o.selectionEnd=o.selectionStart=o.value.length;
}




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
HappyMan
Дата 29.3.2005, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 0
Всего: 2



sergej.z
УРА!!!!!!!!!! Так работает!
Добавлено @ 21:25
Огромное всем спасибо!
Добавлено @ 21:26
sergej.z
если не секрет: что ему в этой строчки не нравилось? smile


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
sergejzr
Дата 29.3.2005, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Я этой функцией вообще никогда не пользовался smile только move.
Надо доку почитать smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Sardar
Дата 29.3.2005, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



moveToElementText - селектирование содержимого текстового элемента, по идее мы селектируем всё содержимое, затем коллапсируем в конец. Через move(Start|End) нужно быть точным в количестве символов, иначе можно отселектировать само поле, а не содержимое smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1062 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.