Событие onunload в HTML


Событие onunload в HTML

Атрибут onunload срабатывает после того, как страница выгружена (или окно обозревателя было закрыто).

Событие onunload происходит, когда пользователь переходит от страницы (щелкнув по ссылке, отправив форму, закрыв окно браузера и т.д.)

Примечание: При повторной загрузке страницы также инициируется событие onunload (и событие onload).

Поддержка браузера

Event
onunload Да Да Да Да Да

Примечание: В связи с различными параметрами обозревателя, это событие может не всегда работать должным образом.

onUnLoad/onBeforeUnload

06.10.2012, 22:09

Всегда ли возникает onUnload по крестику
А то запись в базу то происходит, то не происходит при запуске asp по onUnload. При записи ещё.

Как динамически поменять BODY.onUnload
Здравствуйте ! Пишу небольшой скрипт, который сохраняет адрес последней страницы на сервер с PHP.

IE onbeforeunload сообщение
Доброе время суток. У меня такой вопрос: я использую onbeforeunload. В Хроме появляется только мой.

Кастомизированное окно на событие onbeforeunload
Добрый день. Можно ли как то сделать при возникновении события onbeforeunload появления.

событие OnUnload

примеров

Javascript код выполняется, когда пользователь не загружен документ:

Определение и использование

OnUnload событие происходит, когда пользователь выходит из страницы.

OnUnload событие происходит, когда пользователь при выходе из страницы (нажав ссылку, заполните форму, закройте окно браузера, и так далее.)

Примечание: OnUnload событие также вызывает событие загрузки страницы (+ OnLoad событие).

грамматика

参数 描述
SomeJavaScriptCode 必需。规定该事件发生时执行的 JavaScript。

Поддержка браузеров


IE, Firefox, Safari и поддержка OnUnload событие, но Chrome или Opera не поддерживают событие.

Команды onLoad и onUnLoad

Пример для этих команд здесь не приводится, так как каждой из них будет посвящен отдельный урок, но они являются обработчиками событий, поэтому надо по крайней мере их упомянуть.

Обе они помещаются внутрь команды документа HTML. Они вызывают событие, когда страница открывается или закрывается, то есть когда пользователь уходит со страницы. Эти команды будут очень полезны при работе с функциям.

Задание

В этом задании предлагается создать форму, которая будет взаимодействовать с пользователем (для этого необходимо знать о командах формы).

Форма должна иметь три элемента: поле ввода с просьбой ввести имя; два поля для флажков с вопросом о том, что предпочитает пользователь — мороженое или шоколад; кнопку отправки данных (submit).

С каждым элементом должно произойти следующее.

· При вводе имени в строке состояния должны появиться слова: Введите свое имя.

· Два поля с флажками должны отослать в строку состояния слова: Вы выбрали. и выбор пользователя.

· При нажатии на кнопку отправки должно появиться окно с благодарностью пользователю за участие в опросе.

Возможное решение

Это можно сделать с помощью следующего сценария:

6. Урок: Запросы пользователю и переменные

Работа с переменными. Запросы пользователю.

Концепция

В этом уроке рассматриваются две концепции. Одна из них используется, когда необходимо запросить у пользователя информацию. Вторая — создание переменных — будет постоянно применяться при работе с JavaScript.

Кстати, мы возвращаемся к созданию полноценных сценариев JavaScriprt, а не просто будем добавлять к HTML события, поэтому снова будет использоваться полный формат . Вот что мы собираемся сделать: Мы просим пользователя ввести имя, и с этим именем будет связана переменная. Когда переменная будет присвоена, мы сможем ввести ее в строку document.write, которая выведет имя пользователя на странице.

Илон Маск рекомендует:  Что такое код mysql_thread_id

Этот урок немного длиннее, так как он включает краткий обзор того, что было изучено до сих пор.

Сценарий

Текст в скобках должен располагаться на одной строке.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Учись учиться, не учась! 10379 — | 7886 — или читать все.


188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Javascript onload and onunload

Consider the following HTML snippet containing some javascript utilizing prompt and unload . The prompt() method works fine but I want alerting something like Goodbye, user when reloading or leaving the page. Any help is greatly appreciated.

6 Answers 6

You should write it like this:

Also, you might consider using the onbeforeunload event in some browsers:

When you write window.onunload = goodBye(); you assign whatever handler that is returned from goodBye to the unload event. Since nothing is returned, there will be no event handler. You need to reference the function instead: window.onunload = goodBye;

You can’t assing this way: window.onunload = goodBye();

If you want to assing this way you have three ways:

And my favourite because it allows you to add more functionality:

Although I would suggest saving the username to a glob by seting a var outside you load func that receives the username after first prompt, then you dont have to prompt them for their name again when they leave

Как и почему работает onbeforeunload

Вчера в багзилле mozilla.org с резолюцией WONTFIX закрыли баг №641509 «onbeforeunload event does not display site-supplied text, only standard message», судя по комментариям, окончательно и бесповоротно. В связи с этим захотелось написать немного об истории вопроса.

Многим известно, что благодаря onbeforeunload можно попросить пользователя не покидать веб-страницу в случае, если у него есть несохранённые данные (к примеру, написано в форме, но не отправлено сообщение на форум). Для этого достаточно дописать примерно такой JavaScript:

После этого в идеале если пользователь пожелает покинуть страницу (любым способом — закрыть вкладку, весь браузер, перезагрузить страницу, ввести новый адрес в адресную строку, перейти по закладке и т. д.), он увидит запрос подтверждения и уход со страницы можно будет отменить. Ранее недобросовестные авторы сайтов пытались с помощью этого окошка перехитрить пользователя и задержать его на странице, например, используя текст «Нажмите OK, чтобы продолжить работу с сайтом и Cancel, чтобы закрыть» (на самом деле кнопки работали наоборот). Или даже что-нибудь более страшное, например «Нажмите OK, чтобы подтвердить снятие $1000 с вашей кредитной карты».

Затем браузеры поумнели и стали дописывать вспомогательный текст, затрудняющий обман пользователя. Вот, например, как это делает IE8:

Практически аналогичный текст был в Firefox 3:

Если его весь прочитать, то становится понятно, что сообщил сайт, а что — браузер. Однако обмануть всё равно можно.

Правильнее поступили авторы Safari и Chrome. В этих браузерах окошки выглядят так:

Здесь мы видим чёткое описание действий прямо на кнопках. Уже весьма трудно убедить пользователя нажать «Уйти», чтобы остаться и «Остаться», чтобы уйти. На мой взгляд, решение идеальное и можно эту тему закрыть. Вообще, как известно, безликое OK почти в любом диалоге следует заменять на название действия (например, «Удалить файлы», «Искать», «Добавить строку», «Открыть файл» и т. д.), это уменьшает количество ошибок пользователя, даже если вы полностью контролируете текст диалога.

Илон Маск рекомендует:  Dos fn 42h установить указатель файла lseek

В чём же была драма с багом 641509? В том, что это подтверждение в Firefox 4 и выше выглядит так:

Как видно, пользовательский текст исчез вообще. С 4-й версии веб-сайт не может сообщить пользователю никакого дополнительного сообщения и объяснить, почему конкретно он не хочет, чтобы пользователь уходил. Скажем, если вы реализуете интерфейс для работы со многими документами в одном окне, и какой-то из них не сохранён, можно было бы сказать, какой конкретно, но в Firefox вы этого не поймёте. Возможно, вы его и не желаете сохранять и увидев сообщение, спокойно бы ушли со страницы, а так вы не знаете, в чём дело. В простыне комментариев к багу вы найдёте много других примеров недовольных веб-программистов о том, что они хотели бы сказать пользователю в этом окошке.

Команда Firefox объясняет своё решение тем, что если веб-страница должна объяснять, зачем она не отпускает пользователя, то это плохая веб-страница. Остаётся открытым вопрос, всегда ли это верно и вообще дело ли это браузера запрещать плохим веб-страницам работать. Здесь ведь не идёт речь о тысяче поп-апов с порнобаннерами. Так или иначе, авторам веб-сайтов следует помнить, что пользователь, если он использует Firefox, может и не увидеть сообщения, которое вы ему показываете.


Вы спросите, почему я не упомянул Оперу? А в ней вообще никакого окошка не выдаётся. Страница молча закрывается. Как сообщают разработчики, Опера осознанно не поддерживает событие onbeforeunload.

Javascript onload и onunload

Рассмотрим следующий фрагмент HTML, содержащий некоторый javascript, использующий prompt и unload . Метод prompt() работает отлично, но я хочу, чтобы при перезагрузке или выходе из страницы было что-то вроде До свидания, пользователь. Любая помощь приветствуется.

Вы должны написать это следующим образом:

Кроме того, вы можете использовать событие onbeforeunload в некоторых браузерах:

Когда вы пишете window.onunload = goodBye(); , вы назначаете любой обработчик, который возвращается из goodBye в событие unload . Поскольку ничего не возвращается, обработчик события не будет. Вместо этого вам нужно ссылаться на функцию: window.onunload = goodBye;

Вы не можете так описать: window.onunload = goodBye();

Если вы хотите это сделать, у вас есть три способа:

И мой любимый, потому что он позволяет вам добавить дополнительные функции:

Javascript onload и onunload

4 George [2012-03-28 15:49:00]

Рассмотрим следующий фрагмент HTML, содержащий некоторый javascript, использующий prompt и unload . Метод prompt() работает отлично, но я хочу, чтобы при перезагрузке или выходе из страницы было что-то вроде До свидания, пользователь. Любая помощь приветствуется.

javascript html onload

6 ответов

11 Решение David [2012-03-28 15:53:00]

Вы должны написать это следующим образом:

Кроме того, вы можете использовать событие onbeforeunload в некоторых браузерах:

Когда вы пишете window.onunload = goodBye(); , вы назначаете любой обработчик, который возвращается из goodBye в событие unload . Поскольку ничего не возвращается, обработчик события не будет. Вместо этого вам нужно ссылаться на функцию: window.onunload = goodBye;

Вы не можете так описать: window.onunload = goodBye();

Если вы хотите это сделать, у вас есть три способа:

И мой любимый, потому что он позволяет вам добавить дополнительные функции:

Команды последействия: onUnLoad и onMouseOut

Концепция


Это два последних обработчика событий, которые необходимо иметь в своем арсенале: onMouseOut и onUnload (обратите внимание на заглавные буквы). Они рассматриваются в одном уроке, потому что начинают действовать после того, как что-то сделано.

Илон Маск рекомендует:  Что такое код odbc_fetch_array

onMouseOver вызывает некое событие, если навести мышь , к примеру, на ссылку. В противоположность ей onMouseOut начинает действовать, если курсор увести со ссылки. Мы также знаем, что команда onLoad запускает сценарий , когда страница загружается. Команда onUnload действует, когда пользователь уходит со страницы.

Сценарий

Следующий код использует события при перемещении указателя мыши:

Использование команды onUnload при уходе со страницы:

Результат работы сценария

При размещении сценария на странице выводится текстовая ссылка «Наведите курсор на эту ссылку и сместите в сторону». Если навести курсор на ссылку и сместить в сторону несколько раз, то в строке состояния можно видеть изменяющиеся сообщения. Это первый результат. При нажатии на ссылку можно увидеть второй.

Разбор сценария

Эффекты с мышью, как легко видеть, создаются с помощью команд onMouseOver и onMouseOut .

Обратите внимание, что эти две команды никак не связаны между собой. Вам не нужно, чтобы эти события происходили одновременно. Помните, несколько уроков назад мы разделяли два обработчика событий запятой, чтобы они происходили одновременно? Здесь не тот случай. Требуется, чтобы одно событие происходило, когда курсор мыши указывает на ссылку, а другое — когда курсор мыши смещается со ссылки. Поэтому нужно писать их как две совершенно независимые команды, каждая из которых содержит свою команду return true .

Сообщение при уходе со страницы создается с помощью команды onUnload=»alert(‘Уже уходите?’)» , которая добавлена в строку BODY документа HTML . Обратите внимание на двойные и одинарные кавычки. Внутри двойных — одинарные. Вторая двойная кавычка означает для браузера конец команды.

Задание

В этом задании необходимо использовать функции onUnload , onMouseOver , и onMouseOut . Сделайте следующее:

  • Создайте страницу с гипертекстовой ссылкой.
  • Когда курсор указывает на ссылку, в строке состояния должны появляться слова: «Привет, пользователь ‘название браузера’!».
  • Когда курсор уходит со ссылки, в строке состояния должен появляться текст: «Не скучаете у нас на ‘URL страницы’?»
  • Если щелкнуть на ссылке, должно появиться окно со словами: «Уже уходите? Сейчас всего только ‘текущее время'»;
  • Время должно определяться с помощью функции.
  • Не пользуйтесь командой onClick , чтобы вывести окно сообщения, возьмите команду onUnload .

Возможное решение

Вот сценарий , который реализует задание:

Функция , определенная в заголовке (между командами ) задает время. К этой функции обращается команда onUnload в строке документа HTML . Переменная времени используется в команде alert .

Почему document.onload не выполняется?

Если посмотреть на обьект window и на обьект document через консоль можно увидить что у них есть событие onload, решил попробовать их в действии.
html

после того как видно результат в консоли у меня возникают такие вопросы:
1. Почему если в первой строчке в обьекте документа в теге body есть дочерний div, то во второй строчке возвращаеться null?? я ожидал что в первой строчке не будет дочернего div и во второй будет null, но почему то обьект document вывело c дочерним div, почему.
2. разница в window.onload и document.onload я полагаю в том что, window.onload — выполняется когда простроен dom и загружены все нужные ресурсы, а document.onload — только после построяки dom, если у меня на второй строчке не был найден div, то именно в тот момент dom не был построен, значит событие должно было сработать позже, почему не сработало.

  • Вопрос задан более двух лет назад
  • 1502 просмотра

document.onload срабатывает когда DOM загружен.
window.onload срабатывает когда DOM, картинки и стили загружены. Типа. Потому что есть разница в браузерах.

Если хотите выполнить скрипт после загрузки всего контента лучше использовать DOMContentLoaded

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL