Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

<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: присваиваемая функция станет обработчиком ошибок для окна.

Исторически сложилось так, что обработчику события

опеrror
объекта
Window
передается три строковых аргумента, а не единственный объект события, как в других обработчиках. (Другие объекты в клиентском JavaScript также имеют обработчики
onerror
, обрабатывающие различные ошибочные ситуации, но все они являются обычными обработчиками событий, которым передается единственный объект события.) Первый аргумент обработчика
window.опеrror
– это сообщение, описывающее произошедшую ошибку. Второй аргумент - это строка, содержащая URL-адрес документа с JavaScript-кодом, приведшим к ошибке. Третий аргумент - это номер строки в документе, где произошла ошибка.

Помимо этих трех аргументов важную роль играет значение, возвращаемое обработчиком

опеrror
. Если обработчик
опеrror
возвращает
true
, это говорит броузеру о том, что ошибка обработана и никаких дальнейших действий не требуется; другими словами, броузер не должен выводить собственное сообщение об ошибке. К сожалению, по историческим причинам в Firefox обработчик ошибок должен возвращать true, чтобы сообщить о том, что ошибка обработана.

Обработчик

оnеrror
является пережитком первых лет развития JavaScript, когда в базовом языке отсутствовала инструкция
try/catch
обработки исключений. В современном программном коде этот обработчик используется редко. Однако на время разработки вы можете определить свой обработчик ошибок, как показано ниже, который будет уведомлять вас о всех происходящих ошибках:

// Вывести сообщение об ошибке в виде диалога, но не более 3 раз

window.опеrror = function(msg, url, line) {

if (опеrror.num++ < опеrror.max) {

alert("ОШИБКА: " + msg + "\n" + url + + line):

return true;

}

}

опеrror.max = 3;

опеrror.num = 0;

  • Читать дальше
  • 1
  • ...
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: