JavaScript. Подробное руководство, 6-е издание
Шрифт:
В дополнение к методам
alert, confirm
и prompt
в объекте Window
имеется более сложный метод, showModalDialog,
отображающий модальный диалог, содержащий разметку HTML, и позволяющий передавать аргументы и получать возвращаемое значение. Метод ShowModalDialog
выводит модальный диалог в отдельном окне броузера. Первым аргументом методу передается URL, определяющий HTML-содержимое диалога. Во втором аргументе может передаваться произвольное значение (допускается передавать массивы и объекты), которое будет доступно сценарию в диалоге, как значение свойства window.dialogArguments
. Третий аргумент - нестандартный список пар имя/значение, разделенных точками с запятой, который, если поддерживается, может использоваться для настройки размеров и других атрибутов диалогового окна. Для определения размеров окна диалога можно использовать параметры «dialogwidth»
и «dialogheight»,
а чтобы позволить пользователю изменять размеры окна, можно определить параметр "resizable=yes".
Окно, отображаемое эти методом, является модальным, и метод
ShowModalDialog
не возвращает управление, пока окно не будет закрыто. После закрытия окна значение свойства window.returnValue
становится возвращаемым значением метода. Обычно разметка HTML диалога должна включать кнопку ОК, которая записывает желаемое значение в свойство returnValue
и вызывает window.close
(раздел 14.8.1.1). В примере 14.4 приводится разметка HTML для использования с методом
showModalDialog.
Комментарий в начале примера включает пример вызова showModalDialog,
а на рис. 14.1 показан диалог, созданный вызовом из примера. Обратите внимание, что большая часть текста, отображаемого в диалоге, передается методу showModalDialog
во втором аргументе, а не является жестко определенной частью разметки HTML.
Пример 14.4. HTML-файл для использования с функцией showModalDialog
<!
– -
– -
Это не самостоятельный HTML-файл. Он должен вызываться методом
showModalDialog и ожидает получить в свойстве window.dialogArguments массив строк.
Первый элемент массива - строка, отображаемая в верхней части диалога.
Все остальные элементы - метки для однострочных текстовых полей ввода.
Возвращает массив значений полей ввода после щелчка на кнопке Okay.
Этот файл используется следующим образом:
var р = showModalDialog("multiprompt,html",
["Enter 3D point coordinates", "x", "y", "z"],
"dialogwidth:400; dialogheight:300; resizable:yes"):
– ->
<form>
<fieldset id="fields"></fieldset> <!-- Тело, заполняемое сценарием ниже -->
<div style="text-align:center"> <!-- Кнопки закрытия диалога -->
<button onclick="okay">Okay</button> <!— Устанавливает возвращаемое -->
<!-- значение и закрывает диалог —>
<button onclick="cancel">Cancel</button> <!-- Закрывает диалог, -->
<!— не возвращая ничего —>
</div>
<script>
// Создает разметку HTML тела диалога и отображает ее в элементе fieldset
var args = dialogArguments;
var text = "<legend>" + args[0] + "</legend>";
for(var і = 1; і < args.length; i++)
text += "<label>" + args[i] +
":
<input id='f" + і + "' ></label><br>";
document.getElementById("fields").innerHTML = text:
// Закрывает диалог без установки возвращаемого значения
function cancel { window. close; }
// Читает значения полей ввода и устанавливает возвращаемое значение,
// затем закрывает диалог
function okay {
window.returnValue = []; // Возвращаемый массив
for(var і = 1; і < args.length; і++) // Значения элементов из полей ввода
window.returnValue[i-1] = document.getElementById("f" + і).value;
window.close; // Закрыть диалог. Это заставит showModalDialog вернуть управление.
}
</script>
</form>
14.6. Обработка ошибок
Свойство
onerror
объекта Window
– это обработчик событий, который вызывается во всех случаях, когда необработанное исключение достигло вершины стека вызовов и когда броузер готов отобразить сообщение об ошибке в консоли JavaScript. Если присвоить этому свойству функцию, функция будет вызываться всякий раз, когда в окне будет возникать ошибка выполнения программного кода JavaScript: присваиваемая функция станет обработчиком ошибок для окна.
Поделиться:
Популярные книги
Вперед в прошлое 7
7. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Око василиска
2. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Великие мифы и легенды. 100 историй о подвигах, мире богов, тайнах рождения и смерти
Старинная литература:
мифы. легенды. эпос
5.00
рейтинг книги
Последний Паладин. Том 7
7. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неучтенный элемент. Том 9
9. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря
1. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Память льда
3. «Малазанская империя»
Фантастика:
фэнтези
6.00
рейтинг книги
Личный аптекарь императора. Том 3
3. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Будущее разума
Научно-образовательная:
прочая научная литература
физика
8.00
рейтинг книги
Бастард Императора. Том 15
15. Бастард Императора
Фантастика:
городское фэнтези
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Убивать чтобы жить 3
3. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Кодекс Крови. Книга IХ
9. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Узы крови
Детективы:
прочие детективы
9.30
рейтинг книги
Адвокат
1. Бандитский Петербург
Детективы:
боевики
8.00