Как мне написать свой собственный диалог подтверждения в JavaScript?
-
06-07-2019 - |
Вопрос
Я хочу написать что-то, что действует так же, как verify () в javascript, но я хочу написать это сам, чтобы я мог обработать диалоговое окно. Из-за проблем с продумыванием того, как я в основном заставлю поток javascript ждать, пока пользователь ответит, а затем вернуть true или false.
Решение
На вашем месте я бы посмотрел одну из популярных библиотек javascript. Большинство из них содержат модальный диалог.
Я нашел пару для JQuery: jqModal и SimpleModal .
Когда вы создаете модальное диалоговое окно, вам нужно привязать события к кнопкам, чтобы вы делали что-то вроде:
function askUserYesOrNo() {
var myDialog = $('<div class="mydialog"><p>Yes or No?</p><input type="button" id="yes" value="Yes"/><input type="button" id="no" value="No"/></div>');
$("#yes").click(handleYes);
$("#no").click(handleNo);
myDialog.modal(); //This would have to be replaced by whatever syntax the modal framework uses
}
function handleYes() {
//handle yes...
}
function handleNo() {
//handle no...
}
Другие советы
Вы действительно хотите использовать для этого фреймворк из-за множества странных кросс-браузерных проблем, с которыми вы столкнетесь, пытаясь создать его самостоятельно. Р>
Я добился хороших результатов, используя jqModal , плагин для инфраструктуры jQuery, который позволяет определять модальные диалоги, но это ни в коем случае не единственный вариант; попробуйте поискать в Google jquery modal или yui modal для некоторых альтернатив.
Для Mootools есть moo.rd's Custom.Confirm и Windoo.Confirm для вашей справки.
Вы можете использовать окно. showModalDialog ( mozilla ), но это нестандартная функция, представленная Internet Explorer. Теперь это также поддерживается в Firefox 3 и Safari (я не уверен, какая версия, но как минимум 3.1 и выше, но не iPhone). Р>
Модальный лайтбокс YUI с непокрытыми руками пример ): р>