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: присваиваемая функция станет обработчиком ошибок для окна.
Поделиться:
Популярные книги
Последний Герой. Том 1
1. Последний герой
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.00
рейтинг книги
Я до сих пор царь. Книга XXXII
32. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Жена неверного генерала, или Попаданка на отборе
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Неучтенный элемент. Том 1
1. Антимаг. Вне системы
Фантастика:
городское фэнтези
фэнтези
5.00
рейтинг книги
Законы Рода. Том 5
5. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга VIII
8. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эпоха Опустошителя. Том VII
7. Вечное Ристалище
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Хозяин Теней 5
5. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Последний Паладин. Том 13
13. Путь Паладина
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Распутье
Сибириада
Проза:
военная проза
историческая проза
5.00
рейтинг книги
Последний Паладин. Том 14
14. Путь Паладина
Фантастика:
аниме
фэнтези
попаданцы
5.75
рейтинг книги
Матабар IV
4. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Наследие Маозари 9
9. Наследие Маозари
Фантастика:
попаданцы
постапокалипсис
рпг
сказочная фантастика
6.25
рейтинг книги
Ну, здравствуй, Герой!
2. Здравствуй, Мир!
Фантастика:
фэнтези
рпг
попаданцы
5.00