программный код
функция openEgg(тип){
window.showModalDialog('../EggPlay.aspx?type='+type,'','dialogHeight: 600px; DialogWidth: 800px; край: поднят; центр: Да; помощь: Нет; изменяемый размер: Нет; статус: Нет; прокрутите:Нет;');
}
Javascript имеет множество встроенных методов для создания диалоговых окон, таких как window.alert(), window.confirm(), window.prompt() и т. д. Однако IE предоставляет больше методов для поддержки диалоговых окон. Например:
showModalDialog() (поддерживается IE 4+)
showModelessDialog() (поддерживается IE 5+)
Метод window.showModalDialog() используется для создания модального диалогового окна, отображающего содержимое HTML. Поскольку это диалоговое окно, оно не обладает всеми свойствами окна, обычно открываемого с помощью window.open().
Метод window.showModelessDialog() используется для создания немодального диалогового окна, отображающего содержимое HTML.
Когда мы используем showModelessDialog() для открытия окна, нам не нужно использовать window.close() для его закрытия. Когда оно открывается в немодальном режиме [IE5], окно, открывающее диалоговое окно, все равно может выполнять другие действия. операции, то есть диалоговое окно не всегда открыто. Оно находится в верхнем фокусе и автоматически закрывается при изменении URL-адреса окна, которое его открывает. Модальное диалоговое окно [IE4] всегда имеет фокус (фокус нельзя удалить, пока оно не будет закрыто). Модальное диалоговое окно связано с окном, которое его открыло, поэтому, когда мы открываем другое окно, их связи по-прежнему сохраняются и скрываются под активным окном.
Как его использовать:
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])
vReturnValue = window.showModelessDialog(sURL [, vArguments] [, sFeatures])
Описание параметра:
СУРЛ
Обязательный параметр, тип: строка. Используется для указания URL-адреса документа, который будет отображаться в диалоговом окне.
vАргументы
Необязательный параметр, тип: вариант. Используется для передачи параметров в диалоговое окно. Тип передаваемых параметров не ограничен, включая массивы и т.д. Диалоговое окно получает параметры, переданные через window.dialogArguments.
Функции
Необязательный параметр, тип: строка. Для описания внешнего вида диалогового окна и другой информации вы можете использовать одно или несколько из следующих значений, разделенных точкой с запятой «;».
DialogHeight — это высота диалогового окна, не менее 100 пикселей. Единицей измерения DialogHeight и DialogWidth по умолчанию в IE4 является em, а в IE5 — px. Для удобства при определении модального диалогового окна используйте в качестве единицы измерения px.
DialogWidth: ширина диалогового окна.
диалогЛефт: расстояние от левой стороны рабочего стола.
диалогТоп: расстояние от рабочего стола.
центр: {да | нет | 1 | 0}: центрировано ли окно, по умолчанию — да, но высоту и ширину по-прежнему можно указать.
help: {да | нет | 1 | 0}: отображать ли кнопку справки, по умолчанию — да.
изменяемый размер: {да | нет | 0} [IE5+]: можно ли изменить размер. По умолчанию нет.
статус: {да | нет | 1 | 0} [IE5+]: отображать ли строку состояния. По умолчанию — да[Модальное] или нет[Модальное].
прокрутка: { да | нет | 1 | 0 | вкл | выкл }: указывает, отображаются ли в диалоговом окне полосы прокрутки. По умолчанию — да.
В HTA также используется несколько атрибутов, которые обычно не используются на обычных веб-страницах.
диалогHide:{ да | нет | 0 | вкл | выкл }: скрыто ли диалоговое окно во время печати или предварительного просмотра. По умолчанию нет.
край: { затонувший | поднятый }: определяет стиль границы диалогового окна. По умолчанию повышено.
без украшений: { да | нет | 0 | включено | выключено }: значение по умолчанию — нет.
Передайте параметры:
Чтобы передать параметры в диалоговое окно, они передаются через vArguments. Ограничений на тип нет. Для строковых типов максимальная длина составляет 4096 символов. Также можно передавать объекты, например:
код программы
test1.htm
====================
<скрипт>
var mxh1 = новый массив («mxh», «net_lover», «Мэнций, глава E»)
var mxh2 = window.open("about:blank","window_mxh")
// Передаем массив в диалоговое окно
window.showModalDialog("test2.htm",mxh1)
// Передаем объект окна в диалоговое окно
window.showModalDialog("test3.htm",mxh2)
</script>
test2.htm
====================
<скрипт>
var a = window.dialogArguments
alert("Вы передали следующие параметры: " + a)
</script>
test3.htm
====================
<скрипт>
var a = window.dialogArguments
alert("Переданный вами параметр является объектом окна, имя: " + a.name)
</скрипт>
Информацию можно вернуть окну, открывшему диалоговое окно, через window.returnValue, и, конечно, это также может быть объект. Например:
программный код
test4.htm
===================
<скрипт>
var a = window.showModalDialog("test5.htm")
for(i=0;i<a.length;i++) alert(a[i])
</script>
test5.htm
===================
<скрипт>
функция отправитьTo()
{
var a=новый массив("a","b")
окно.returnValue = а
окно.закрыть()
}
</скрипт>
<тело>
<форма>
<input value="Return" type=button onclick="sendTo()">
</форма>
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ:
1. Как отправить сообщение в модальном диалоговом окне, не открывая новое окно?
Если ваш браузер IE5.5+, вы можете использовать iframe с атрибутом имени в диалоговом окне и установить в качестве цели имя iframe при отправке. Для IE4+ можно использовать фрейм высотой 0: пример
программного кода
test6.htm
===================
<скрипт>
window.showModalDialog("test7.htm")
</script>
test7.htm
===================
if(window.location.search) предупреждение(window.location.search)
<frameset rows="0,*">
<frame src="/blog/about:blank">
<frame src="test8.htm">
</frameset>
test8.htm
===================
<form target="_self" метод="получить">
<входное имя=txt value="test">
<тип ввода=отправить>
</форма>
<скрипт>
if(window.location.search) предупреждение(window.location.search)
</script>
2. Можно ли передавать параметры непосредственно в диалоговое окно через http://servername/virtualdirname/test.htm?name=mxh ?
Ответ — нет. Но можно и в кадре.