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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Смайлики и фреймЫ, Смайлики и фреймЫ 
:(
    Опции темы
windows_error
  Дата 14.4.2004, 09:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как сделать чтобы при нажитии на смайлик в поле <input type="text" size="100" name=mesage> вставлялся текст..например (1)....

Страница разделена следующим образом:

Смайлики хранятся в файле smiles.php
Отображатся должнЫ в panel.php в
<input type="text" size="100" name=mesage>




<frameset rows="50,*,50" border="0">
<frame src="logo.php" scrolling="no">
<frameset cols="*,50,180" border="0">
<frame src="mesages.php" scrolling="yes">
<frame src="smiles.php" scrolling="yes">
<frame src="online.php" scrolling="yes">
</frameset>
<frame src="panel.php" scrolling="no" name=bottomframe>
</frameset>
  Вверх
Sardar
Дата 14.4.2004, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


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

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



Обращаемся к текстовому полю в panel.php из фрейма smiles.php:
Код
top.frames['bottomframe'].document.forms['form_name'].elements['message'].value

Изменяя содержимое свойства value мы измеянем содержимое текстового поля.
Код
//smiles.php
function addText(txt) {
if(typeof(top.frames['bottomframe']!='undefined') { //фрейм существует
 top.frames['bottomframe'].document.forms['form_name'].elements['message'].value+=txt;
}
}
...
<img src='smile.gif' onClick='addText(":)")'>


Разработчики IE подошли с интересным решением: существует обьект selection который отвечает за любую селекцию на странице. Через этот обьект можно править все, включая содержимое текстовых полей. Для этого получаем обьект TextRange и изменяем содержимое его поля text:
Код
//smiles.php
function addText(txt) {
var trgt;
if(typeof((trgt=top.frames['bottomframe']))=='undefined') return;
if(typeof(trgt.document.selection)!='undefined') { //IE compatible
 var rng=trgt.document.selection.createRange(); //создаем обьект TextRange
 if(rng.parentElement()==trgt.document.forms['form_name'].elements['message']) { //селекция(курсор) именно в текстовом поле
  rng.text=txt;
  return;
 }
}
//иначе просто добавляем текст
trgt.document.forms['form_name'].elements['message'].value+=txt;
}
...
<img src='smile.gif' onClick='addText(":)")'>



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


 




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


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

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