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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Модальное окно, возврат значений, window.opener и window.returnValue 
:(
    Опции темы
proger
Дата 28.11.2005, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 1



На главной странице вызываю модальное окно
Код

<script>
function opens(){
 window.status=\"\";
 strFeatures=\"dialogWidth=500px;dialogHeight=320px;scrollbars=yes;center=yes;border=thin;help=no;status=no\";
 strTitle=window.showModalDialog(\"inc/system/alldostupny/spravschetov.php\",\"NewWindows\",strFeatures);
 window.status=\"Ñ÷åòà êëèåíòà\";
}
<!--

</script>

Потом из этого модального окна хочу вернуть значение в поле данные так:
Код

<script language=\"JavaScript\">
<!--
function Insert(in1)
{
    window.opener.document.pporuch.iik.value = in1;
    window.close();
}
//-->
</script>

Он ругается на window.opener.document, что это значит?
PM MAIL   Вверх
Ciber SLasH
Дата 28.11.2005, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Модальный диалог не имеет никаких отношений с родительским окном.
Для взаимодействия модального окна с главным существует: window.returnValue — свойство у модального окна для возврата значения в главное окно; результат вызова метода window.showModalDialog() — то, что возвратило модальное окно.

Всё это выглядит так:
main.htm
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<meta name="Generator" content='EditPlus 2.20.211'>
<meta name="Author" content='Ciber SLasH'>
<title>JavaScript :: Пример работы с showModalDialog (IE only)</title>
<script type='text/javascript'>
function doShowModal(obj) {
var args = [obj.arg1.value, obj.arg2.value, obj.arg3.value];
var ft = "dialogWidth: 300px; dialogHeight: 240px; center: yes; help: no; resizable: yes; status: no";
var Result = window.showModalDialog("modal.htm", args, ft);

    document.getElementById('rez').innerText = Result;

return false;
}
</script>
<style type='text/css'>
form {margin: 3px 0}
button {margin-top: 5px}
#rez {height: 100px; border: 2px solid black}
</style>
</head>

<body>
<fieldset><legend>[ showModalDialog ]</legend>
<form onSubmit='return doShowModal(this)'>
Аргумент №1: <input type="text" name="arg1" tabindex="1"> Аргумент №2: <input type="text" name="arg2"> Аргумент №3: <input type="text" name="arg3"><br>
<center><button type="submit">Показать диалог</button></center>
</form>
</fieldset>
<br>Результат:
<div id='rez'></div>
</body>
</html>


modal.htm
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<meta http-equiv="MSThemeCompatible" content='Yes'>
<meta name="Generator" content='EditPlus 2.20.211'>
<meta name="Author" content='Ciber SLasH'>
<title>JavaScript :: showModalDialog()</title>
<script type='text/javascript'>
function setValues() {
var values = window.dialogArguments;
var form = document.getElementById('myForm');

    if (values) {
        form.arg1.value = values[0];
        form.arg2.value = values[1];
        form.arg3.value = values[2];
    }
}
</script>
<style type='text/css'>
body {margin: 5px}
#myForm input {background: buttonFace}
</style>
</head>

<body onLoad='setValues()'>
<fieldset><legend>[ From "main.htm" ]</legend>
<form id='myForm'>
Аргумент №1: <input type="text" name="arg1" tabindex="1" readonly><br>
Аргумент №2: <input type="text" name="arg2" readonly><br>
Аргумент №3: <input type="text" name="arg3" readonly>
</form>
<form onSubmit='window.returnValue = this.retValue.value; self.close(); return false'>
Возвратить значение в главное окно:<br>
<input type="text" name="retValue" size="28"><input type="submit" value="Return">
</form>
</fieldset>
</body>
</html>


Только учти, что метод window.showModalDialog() работает только в IE. Лучше юзай всплывающее окно: window.open()
PM   Вверх
proger
Дата 28.11.2005, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 1



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


 




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


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

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