|
|
|
| Подскажите пожалуйста альтернативу функцыи alert()
Какие еще есть виды вывода сообщения? | |
|
|
|
|
|
|
|
для: TanTaL91
(19.03.2009 в 15:15)
| | Кроме alert'a имеются ещё два системных окна сообщения (Message Box) - confirm и prompt
Именно три этих Message Box отличаются от прочих не только тем, что они - системные встроенные (а все прочие - самодельные), но и тем, что при их выводе исполнение кода приостанавливается до того момента, покуда юзер не закроет этот Message Box.
Подробнее смотрите http://www.google.com/search?q=javascript+confirm+box и http://www.google.com/search?q=javascript+prompt+box (любые из 248 000 ссылок в каждом случае) | |
|
|
|
|
|
|
|
для: PAT
(19.03.2009 в 15:23)
| | А рельно создать свой confirm (то есть, после действия всплывает div, который до этого был display:none; в нем - кнопки, пока не нажмут, все дальнейшие действия заблокированы)?
Я думал о полном аналоге функции, но не знаю, как реализовать ожидание нажатия на кнопки, чтобы функция работала таким образом: if(myConfirm('Стой, кто идет! Знаешь пароль?')){...действие...} | |
|
|
|
|
|
|
|
для: amigo63
(20.03.2009 в 10:32)
| | Без проблем.
По какому-то событию делаете свое окно видимым и на этом скрипт обрываете.
На какие-либо действия юзера в окне (например, клик по какой-то кнопке) повесить функцию-обработчик. Соответственно, до тех пор, покуда юзер не нажмёт на что-либо в окне, ОСНОВНОЙ скрипт остановится.
Так получится аналог конфирму или алерту (или промпт).
Разумеется, для полного соответствия по функциональности необходима ещё одна инструкция, коя ограничит воздействие юзера на прочий контент страницы при открытом окне сообщений. Например, надо будет между страницей и окном ("между"с точки зрения z-index) "подсунуть" какой-то контейнер на всю ширину и высоту с бакгроундом и полной прозрачностью. | |
|
|
|
|
|
|
|
для: PAT
(20.03.2009 в 12:06)
| | А поподробнее вот с этого места
...и на этом скрипт обрываете.
и до этого
...покуда юзер не нажмёт на что-либо в окне, ОСНОВНОЙ скрипт остановится.
Как осуществить такую приостановку? | |
|
|
|
|
|
|
|
для: amigo63
(20.03.2009 в 18:50)
| | Например, так:
1. Имеем в коде прописанный
<div id="MesBox" style="z-index:999; position: absolute; top: 100px; left: 100px; display: none; width: 200px; height: 200px; background: silver"><a href="#" onclick="return f ()">Закрыть</a></div>
|
Контейнер с id="MesBox", как видите, изначально НЕВИДИМ, и, соответственно,
НЕТ ДОСТУПА к ссылке, клик по которой запускает функцию f ().
2. По какому-либо событию делаем этот контейнер ВИДИМЫМ, например, по окончании
загрузки тела документа:
<body onload="document.getElementById ('MesBox').style.display = 'block'">
|
Фактически исполнение скриптов после onload тега <BODY> прекратится и
возобновится оно только после вызова функции f ().
Таким образом достигается похожая на alert функциональность - покуда юзер не кликнет -
ничего происходить не будет.
Разумеется, в системном alert'e никаких (подобных указанной) функций не надо.
Но с этого я и начал - alert тем и отличается, что остановка скриптов при его использовании
происходит автоматически.
Понятно, что юзер может внешними кнопками браузера, например, закрыть окно (или нажать
кнопку "назад"). Но... как говорится - "копия всегда хуже оригинала":-) | |
|
|
|
|
|
|
|
для: PAT
(21.03.2009 в 10:36)
| | То есть, остановить скрипт может только onload?
А как же вот с этим:
<a onclick="if(myConfirm('Удалить файл?')){...действие...}">Удалить</a>
| ?
Нереализуемо? | |
|
|
|
|
|
|
|
для: amigo63
(21.03.2009 в 10:57)
| | Мда... нелегко общаться с теми, кто читает написанное через слово...
Цитирую себя любимого, выделив жирно ключевые слова:
"По какому-либо событию делаем этот контейнер ВИДИМЫМ,
например, по окончании загрузки тела документа"
|
Цитирую ещё раз, сделав выделение ключевых слов Б_О_Л_Е_Е__ З_А_М_Е_Т_Н_Ы_М:
"П_О__К_А_К_О_М_У_-_Л_И_Б_О__С_О_Б_Ы_Т_И_Ю делаем этот контейнер ВИДИМЫМ,
Н_А_П_Р_И_М_Е_Р, по окончании загрузки тела документа"
|
Я привёл ПРИМЕР с onload, но я нигде не писал, что мой пример - это единственно возможный способ. | |
|
|
|
|
|
|
|
для: PAT
(20.03.2009 в 12:06)
| | а что мешает нажать "назад"?:) | |
|
|
|