|
|
|
| В чате столкнулся с такой проблемой: нужно из открывающегося окна со смайликами при нажатии на смайлик отсылать его код в форму чата (msg)!
Чат у меня имеет такой вид (сама форма это chatforma.php)
<frameset framespacing='0' border='0' rows='60,350,30' cols='360,100' frameborder='0'>
<frame name=screen scrolling='no' noresize target='contents' src='chattop.php'>
<frame name=screen scrolling='no' noresize target='contents' src='chattopright.php'>
<frame name=bodyframe scrolling='auto' noresize target='contents' src='chat.php'>
<frame name=screen scrolling='no' noresize target='contents' src='chatmiddle.php'>
<frame name=bottomframe scrolling='no' noresize target='contents' src='chatforma.php'>
<frame name=screen scrolling='no' noresize target='contents' src='chatbottom.php'>
<noframes>
<body>
<p>Страница использует фреймы, но ваш сервер их не принимает</p>
</body>
</noframes>
</frameset>
|
Сама форма в чате
<form action='chatsend.php' method=post name=bottomform onSubmit='msg.focus(); msg.select()'>
<input type=text name=private class=post size=15>
<input type=text name=msg class=post size=60>
<input type=reset class=post value='Сбросить'>
<input type=submit name=SUBMIT class=post value='Добавить'>
</form>
|
окно со смайлами открываю так
<a href='#' class=a1 onClick='javascript:window.open(\"chatsmiles.php\",\"Смайлики\",\"Width=428,Height=600,toolbar=0,status=1,border=0,scrollbars=1\")'>Смайлики</a>
|
| |
|
|
|
|
|
|
|
для: midav
(21.01.2006 в 00:58)
| | Передать значение из открывающегося окна в родительское надо так:
opener.document.parent_form_name.input_name.value = document.child_form_name.input_name.value;
self.close();
|
| |
|
|
|
|
|
|
|
для: codexomega
(21.01.2006 в 01:21)
| | Не плохо было бы пояснить что за parent_form_name, child_form_name и как это можно применить на этой функции
<script language="JavaScript">
function setSmile(symbol) {
obj = opener.document.msg;
obj.value = obj.value + symbol;
obj.focus();
}
</script>
|
| |
|
|
|
|
|
|
|
для: midav
(21.01.2006 в 01:41)
| | parent_form_name и child_form_name ничего общего с яваскриптом не имеют:)
Это своего рода пояснение кода без комментариев (название формы родительского окна и дочерьнего).
Данный код ставится в окно со смайликами.
<script language="JavaScript">
function setSmile(symbol) {
obj = opener.document.имя_формы.msg;
obj.value = obj.value + symbol;
obj.focus();
self.close();
}
</script>
|
Вроде как все.. | |
|
|
|
|
|
|
|
для: codexomega
(21.01.2006 в 02:12)
| | Да вот как то не получается! Походу надо добавить в каком фрейме находиться форма?
форма у меня находиться в bottomframe | |
|
|
|
|
|
|
|
для: midav
(21.01.2006 в 12:55)
| |
obj = opener.frames["bottomframe"].document.имя_формы.msg;
|
| |
|
|
|
|
|
|
|
для: codexomega
(21.01.2006 в 16:49)
| | не знаю чего за фигня, но как то не идет! Может надо какую нибудь другую функцию а не ту которую я показал? | |
|
|
|
|
|
|
|
для: midav
(21.01.2006 в 00:58)
| | Значит смотрите! Все очень просто:
Рассмотрим простейший пример:
Допустим у нас на странице не столько фреймов сколько у Вас, а всего 2: один фрейм с формой для ввода сообщения (top_frame), а другой для выбора смайликов (bottom_frame):
<frameset rows='50%,50%'>
<frame name=top_frame src='top.htm'>
<frame name=bottom_frame src='bottom.htm'>
</frameset>
|
В top.htm (top_frame) помещаем форму ввода сообщения:
<form name="sendform">
<input type="text" name="message">
</form>
|
В bottom.htm (bottom_frame) ссылку на открывающееся окно со смайликами:
<a href="#" OnClick=window.open("smiles.htm","Смайлики","Width=428,Height=600")>Смайлики</a>
|
Теперь осталось только написать код для самого окна со смайликами:
<script language="JavaScript">
function SetSmile(smile)
{
opener.top.top_frame.sendform.message.value = smile;
self.close();
}
</script>
<a href="javascript: SetSmile(':)')">:)</a>
|
Теперь обьясняю:
SetSmile принимает один параметр - это текстовое отображение смайлика работает она так:
opener - это окно из которого было открыто данное окно (bottom.htm), top - это родительский фрейм (index.htm) top_frame - это фрейм относительно index.htm в котором форма ввода ссобщения, sendform - имя формы, message - имя компонента для ввода сообщения.
Все о чем я тут написал в аттаче | |
|
|
|
|
|
|
|
для: Евгений Петров
(22.01.2006 в 01:33)
| | Евгений Петров спасибо большое, уже не первый раз выручаете! Все сделал, все работает :) Если что заходите полюбоваться http://midav.ilva.lv | |
|
|
|