์๋ ํ์ธ์,
์๋ฃ๋ ํ SweetAlert ๋ํ ์์๊ฐ ๋ค๋ฅธ ๋ํ ์์๋ฅผ ์ด๋ฉด ํญ ํค๊ฐ ์๋์ ๋ฉ์ถ๊ณ ๋ค๋ฅธ ๋ชจ๋ ํค ์ ๋ ฅ์ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ต๋๋ค.
http://tristanedwards.me/sweetalert ์ ์์ ๋ฅผ ์ฌ์ฉํ์ฌ์ด๋ฅผ ๋ค์ ๋ง๋ค ์ ์์ต๋๋ค
์ด๊ฒ์ ๊ตฌ์ฒด์ ์ผ๋ก :
swal({ title: "Are you sure?",
text: "Your will not be able to recover this imaginary file!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, delete it!",
cancelButtonText: "No, cancel plx!",
closeOnConfirm: false,
closeOnCancel: false },
function(isConfirm){
if (isConfirm) {
swal("Deleted!", "Your imaginary file has been deleted.", "success");
} else {
swal("Cancelled", "Your imaginary file is safe :)", "error");
} });
์ด์ ๋ชจ๋ฌ, ํนํ closeModal () ํจ์์์์ด ๋ถ๋ถ์ ํค ์ ๋ ฅ ์ฒ๋ฆฌ๋ฅผ ๋ณต์ฌํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
// Reset the page to its previous state
window.onkeydown = previousWindowKeyDown;
document.onclick = previousDocumentClick;
if (previousActiveElement) {
previousActiveElement.focus();
}
์๋ง๋ ์ด์ ๋ชจ๋ฌ์ ์ด์ ์ ๋ง์ถ๊ณ keydown๊ณผ onclick์ ๋ค์ ๋ฑ๋กํ๋ ๊ฒ์ผ๊น ์?
๊ทธ ์์์ ๋๋ ๋น์ ์ด ๋งํ๋ ๊ฒ์ด ์ฌ์ค์ด๋ผ๋ ๊ฒ์ ์ ๋ง๋ก ์ ์ ์์ต๋๋ค.
'ํญ'ํค๊ฐ ๋ฒํผ ์ฌ์ด๋ฅผ ์ด๋ํ๊ธฐ ๋๋ฌธ์
๋ ๋ฒ์งธ ๋ชจ๋ฌ์ ๋ฐ์ผ๋ฉด ๋ฒํผ์ด ํ๋๋ฟ์ด๋ฏ๋ก ํญ ๋ฒํผ์ ์๋ฌด๋ฆฌ ๋ง์ด ๋๋ฌ๋ ํญ์ ํ๋์ ๋ฒํผ์ด ์ ์ง๋ฉ๋๋ค.
๋ช ํํ๊ฒํ์ง ๋ชปํด์ ์ฃ์กํฉ๋๋ค!
์, ๋ชจ๋ธ์ ํญํ๊ณ ์์ง๋ง ๋ ๋ฒ์งธ ๋ชจ๋ฌ์ ๋ซ์ ํ์๋ ํญ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์น ํ์ด์ง๋ฅผ ํ์ ํ ์ ์์ต๋๋ค (์น ํ์ด์ง ๋ง ํ๋ฉด์ ๋ชจ๋ฌ ์์).
jack126guy / sweetalert @ issue127 ์์ ์์ ์ ์๋ํ์ต๋๋ค. ํฌ์ปค์ค๊ฐ ํ์ด์ง์ ๋ฒํผ์ผ๋ก ๋์๊ฐ๋ ํ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋ ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ฌ์ ํ ๋ค๋ฅธ ๋ฒํผ์ผ๋ก ์ด๋ํ ์ ์์ผ๋ฉฐ Enter ํค๋ฅผ ๋๋ฌ ๊ฒฝ๊ณ ๋ฅผ ๋ค์ ํ์ํ๋ฉด ์ํฉ์ด ์ด์ํด์ง๋๋ค.
์, ๋น์ทํ ์์ ์ ์๋ํ์ง๋ง SweetAlert๊ฐ ์๋ ์น ์ฌ์ดํธ์ ์์์ธ์ง ํ์ธํ๊ธฐ ์ํด ์ฐฝ ์ ์ญ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ ์์์ ์ด์ ์ ๋ง์ถ์ง ๋ง Tab ํค๋ ์ฌ์ ํ ์๋ํ์ง ์์ต๋๋ค.
ํ์ฌ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ ๊ฒ์ผ๋ก ๋ณด์ด๋ ๊ฒ์ handleKeyDown ๋ฉ์๋์ if (keycode == 9) ์ ์์ stopEventPropagation (e) ์ ์ ๊ฑฐํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ด๊ฒ์ ๋ค๋ฅธ ๋ถ์์ฉ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค ...
๋๋ ๋น์ ์๊ฒ ์ปค๋ฐ์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ง๋ง ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ํ์ง ์์ ์๋์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ๋ค๋ฅธ ๋ณ๊ฒฝ๋ํ์ต๋๋ค.
๋ฐ๋ผ์ ๋๊ตฐ๊ฐ๊ฐ์ด ๋ฒ๊ทธ์ ๋ํ ์์ ์์ ์ ์ํ๋ ๊ฒฝ์ฐ์ด ํ๋ก์ ํธ์์ ๋ถ๊ธฐ ํ ์ ์ฅ์๊ฐ ์์ต๋๋ค. https://github.com/heero-yuy/sweetalert.git
์ง๊ธ๊น์ง ๋ชจ๋ ํ๋ก์ ํธ์์ 100 % ์๋ํ์ง๋ง ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ธํด ๋ค๋ฅธ ๊ธฐ๋ฅ์ด ์์๋์ง ์์๋์ง ํ์ธํ๊ธฐ ์ํด ๊ด๋ฒ์ํ๊ฒ ํ ์คํธํ์ง๋ ์์์ต๋๋ค.
๋๋ 215 ํ์์ sweetAlert ๋๋ swal ํจ์์ ์์ ๋ถ๋ถ์ ์์ ๋ ์ค์ ์ฝ๋๋ฅผ ์ฝ์ ํ์ฌ ์์ ํ์ต๋๋ค. ์ต์ ์ ํด๊ฒฐ์ฑ ์ธ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ ์๊ฒ ํจ๊ณผ์ ์ ๋๋ค.
/*
* Global sweetAlert function
*/
var sweetAlert, swal;
sweetAlert = swal = function() {
if(previousWindowKeyDown !== undefined && window.onkeydown !== previousWindowKeyDown)`
window.onkeydown = previousWindowKeyDown;
: +1 :. ์ด๊ฒ์ ์ฐ์ ์์๋ฅผ ๊ฐ์ ธ์ผํฉ๋๋ค.
@jayquest ์ ์์ ์ด
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ @jayquest๋ก ์์ ์ ๊ตฌํํ๊ธฐ ์ํด ๋ค์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
var previousWindowKeyDown = window.onkeydown;
swal ({
์ ๋ชฉ : 'ํ์คํฉ๋๊น?',
closeOnConfirm : ๊ฑฐ์ง,
closeOnCancel : false
}, ํจ์ (isConfirm) {
window.onkeydown = previousWindowKeyDown;
if (isConfirm) {
swal ( '์ญ์ ๋จ!', '๊ฐ์ ํ์ผ์ด ์ญ์ ๋์์ต๋๋ค.', '์ฑ๊ณต');
} else {
swal ( 'Cancelled', '๊ฐ์ ํ์ผ์ ์์ ํฉ๋๋ค. :)', 'error');
}
});
@amoralidad ์ ์์ ์ฌํญ์ ํ์ฅํ๋ ค๋ฉด ํ๋ก์ ํธ์ ๋ฌ์ฝคํ ๊ฒฝ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจ์ํจ ํ ํ ๋ฒ๋ง ํฌํจํ๋๋ก์ด ์ต์ ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ swal ์๋น์ค๋ฅผ ์ฅ์ํ์ฌ ์ฝ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฐฉํด๋ฐ์ง ์๋๋ก ์ ์งํฉ๋๋ค (๋ชจ๋ ํธ์ถ์์ ์์ ์์ ์ฌํญ์ ์ฝ๋ฉํ์ง ์์). ) ์๊ตฌ์ ์ธ ์์ ์ด ์ด๋ฃจ์ด์ง ๋๊น์ง.
(function (){
var _swal = window.swal;
window.swal = function(){
var previousWindowKeyDown = window.onkeydown;
_swal.apply(this, Array.prototype.slice.call(arguments, 0));
window.onkeydown = previousWindowKeyDown;
};
})();
์ด ๋ฒ๊ทธ๋ ํ์ธํ ์ ์์ผ๋ฉฐ ์์ ํด๊ฒฐ ๋ฐฉ๋ฒ๋ ์ ์๋ํฉ๋๋ค! : +1 :
๋ค, @JustinWinthers ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด
๊ทธ๋ฌ๋ ๋ํ ์์์์ ์ด์ค์ผ์ดํ ๋ฐ Enter ํค๋ฅผ ์ฌ์ฉํ์ฌ f-upํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
@amoralidad ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์ ์๊ฒ
๊ฐ์ฌํฉ๋๋ค @jayquest ... @ t4t5 ๋ง์คํฐ ๋ธ๋์น์์
๋ด ์๋ฃจ์ ๊ณผ ํจ๊ป ํ ์์ฒญ์ ์ ์ถํ์ต๋๋ค. https://github.com/t4t5/sweetalert/pull/547
@JustinWinthers , ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด type: 'input'
. "์ทจ์"๋ฒํผ์ ํด๋ฆญํ์ฌ ๋ํ ์์๋ฅผ ๋ซ์ผ๋ ค๊ณ ํ๋ฉด swal.showInputError is not a function
๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, http://clubcare.no/dashboard
๋ก ์ด๋ํ์ฌ Glemt passord
(๋น๋ฐ๋ฒํธ ๋ถ์ค)์ ํญํฉ๋๋ค.
ํจ์๋ฅผ ์ ๊ฑฐํ๋ฉด ๋ค์ ์๋ํฉ๋๋ค. ์ด ๋์์ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ด๋์ด๊ฐ ์์ต๋๊น? ๊ฐ์ฌํฉ๋๋ค!
@jayquest ์ด ๋ฌธ์ ๋ฅผ
์๋ ํ์ธ์ @JustinWinthers
SweetAlert๊ฐ ์ด๋ฆฐ ํ์ด ํญ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ํ ์ ์์ ์๋ํ์ต๋๋ค. ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ง๋ง cancel
๋ฒํผ์ ํด๋ฆญ ํ ๋ swal.close();
์ฌ์ฉํ์ฌ Sweetalert๋ฅผ ๋ซ์ผ๋ ค๊ณ ํ ๋์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์์ํ์ต๋๋ค.
swal.close is not a function
์ด๊ฒ์ @EduardJS ๊ฐ ์์์ ๋งํ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค. ์๋ํ๊ฒํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ๋๋ฌด ๊ฐ๊น์์ง ๊ฒ ๊ฐ์ง๋ง์ด ์ค๋ฅ๋ก ์ธํด ์ ์ ๋ ์ฝ๋๋ฅผ ์ ๊ฑฐํด์ผํ์ต๋๋ค. ์ด๋ค ๋์์ด๋ผ๋ ์ข์ ๊ฒ์ ๋๋ค.
๊ฑด๋ฐฐ,
๋.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ ํ์ง ์๊ณ ์ฐพ์ ์์๋ @JustinWinthers ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ธฐ๋ฐ์ผ๋กํ๋ ๊ฐ์ฅ ๊ฐ๋จํ ํด๊ฒฐ์ฑ
์ swal.close
ํจ์์๋ง ์ฐ๊ฒฐํ๊ณ window.onkeydown
๋ฅผ ์ด์ window.onkeydown
์ด๋ฒคํธ ํธ๋ค๋ฌ :
(function (){
var close = window.swal.close;
var previousWindowKeyDown = window.onkeydown;
window.swal.close = function() {
close();
window.onkeydown = previousWindowKeyDown;
};
})();
๋๋ ์ ๊ฒฝ์ฐ์๋ ๋ ๊ฐ๋จํฉ๋๋ค.
(function (){
var close = window.swal.close;
window.swal.close = function() {
close();
window.onkeydown = null;
};
})();
์ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ๋ํ ์์์์ Enter ๋ฐ Escape ํค๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
@ Mr-Anonymous ๋ฐ @EduardJS์์ ์ธ๊ธ ํ ์ค๋ฅ ๋ฉ์์ง๋ ๋ ์ด์ ๋ฐ์ํ์ง ์์ต๋๋ค.
@kosst ์๋ฒฝํฉ๋๋ค. ๊ณต์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๋น์ ์ ์ฝ๋๋ฅผ ์๋ํ๊ณ ์๋ฒฝํ๊ฒ ์๋ํฉ๋๋ค. ์ ๋ง ๊ณ ๋ง์ต๋๋ค!!
๊ฑด๋ฐฐ,
๋.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ @jayquest๋ก ์์ ์ ๊ตฌํํ๊ธฐ ์ํด ๋ค์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
var previousWindowKeyDown = window.onkeydown;
swal ({
์ ๋ชฉ : 'ํ์คํฉ๋๊น?',
closeOnConfirm : ๊ฑฐ์ง,
closeOnCancel : false
}, ํจ์ (isConfirm) {
window.onkeydown = previousWindowKeyDown;
if (isConfirm) {
swal ( '์ญ์ ๋จ!', '๊ฐ์ ํ์ผ์ด ์ญ์ ๋์์ต๋๋ค.', '์ฑ๊ณต');
} else {
swal ( 'Cancelled', '๊ฐ์ ํ์ผ์ ์์ ํฉ๋๋ค. :)', 'error');
}
});