Sweetalert: '์žกํžˆ์ง€ ์•Š์€ RangeError: ์ตœ๋Œ€ ํ˜ธ์ถœ ์Šคํƒ ํฌ๊ธฐ๊ฐ€ ์ดˆ๊ณผ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.' ์˜ค๋ฅ˜

์— ๋งŒ๋“  2014๋…„ 10์›” 10์ผ  ยท  10์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: t4t5/sweetalert

SweetAlert๊ฐ€ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•˜์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๋ชจ๋‹ฌ์„ ์‚ฌ์šฉํ•˜๊ณ  ์—ด๋ ค ์žˆ๋Š” ๋™์•ˆ SweetAlert๋„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. SweetAlert์—์„œ 'Cancel', 'OK'....๋ฅผ ํด๋ฆญํ•˜๋ฉด 'Uncaught RangeError: Maximum call stack size included' ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

      if (btnIndex === -1) {
        // Something in the dom, but not a visible button. Focus back on the button.
        $targetElement.focus();
      }

์ด ์ฝ”๋“œ์— ์ฃผ์„์„ ๋‹ฌ๋ฉด ๋” ์ด์ƒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ถ”์‹ : ๋ชจ๋‹ฌ์„ ์—ด์ง€ ์•Š์œผ๋ฉด ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ฃผ์„:
$targetElement.focus ();
_์•„๋งˆ๋„ 413๋ฒˆ ์ค„์—._

๋ชจ๋“  10 ๋Œ“๊ธ€

์ €๋„ ์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
SweetAlert๊ฐ€ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๋ชจ๋‹ฌ๊ณผ ์ถฉ๋Œํ•˜๊ธฐ ๋•Œ๋ฌธ์— (๋ถ€ํŠธ์ŠคํŠธ๋žฉ์˜) ์—ด๋ฆฐ ๋ชจ๋‹ฌ์ด ์žˆ์„ ๋•Œ ๋‹ฌ์ฝคํ•œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ์–ธ๊ธ‰ ํ•œ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.
์–ด๋–ป๊ฒŒ ๋“  (๊ธ€์Ž„, ๋‚˜๋Š” ๋‹น์‹ ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค) ๋จผ์ € ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ๋ชจ๋‹ฌ์„ ๋‹ซ์€ ๋‹ค์Œ ๋‹ฌ์ฝคํ•œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ดœ์ฐฎ์„ ๊ฒ๋‹ˆ๋‹ค.

@littleneotrix ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ๋Š” ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๋ชจ๋‹ฌ์ด ์—ด๋ ค ์žˆ๊ณ  ์†”๋ฃจ์…˜์ด ์™„์ „ํžˆ ์ž‘๋™ํ•˜๋Š” ๋™์•ˆ ๋‹ฌ์ฝคํ•œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ๋‚ด ์•ฑ์—์„œ๋Š” ๊ทธ๋Œ€๋กœ ๋‘์–ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ์— ์ฃผ์„์„ ๋‹ฌ์•„์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ธ€์Ž„, ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ์กฐ๊ธˆ ์‹œ๋„ํ•˜๊ณ  ์žฌ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ...
Sweetalert๋ฅผ ์—ด๊ธฐ ์ง์ „์— Javascript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๋ชจ๋‹ฌ์—์„œ .hide()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ์•ผ 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!",   closeOnConfirm: false }, function(){   $('#myModal').modal('show')});

๊ฐ์ฒด ๋์— ์žˆ๋Š” ํ•จ์ˆ˜์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ๋‚˜๋Š” ๊ทธ์—๊ฒŒ ๋ชจ๋‹ฌ์„ ๋‹ค์‹œ ๋ฌป๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ... ๋จผ์ € ๋ชจ๋‹ฌ์„ ์ˆจ๊ธฐ๊ณ  -> sweetalert ํ”„๋กฌํ”„ํŠธ -> sweetalert์˜ ํ™•์ธ์—์„œ ๋ชจ๋‹ฌ์„ ๋‹ค์‹œ ํ”„๋กฌํ”„ํŠธํ•˜์‹ญ์‹œ์˜ค.
๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๊ณ ์˜ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค ;)
๋ฌผ๋ก  ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์ด ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๋˜๋Š” sweetalert ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ? ์ œ ๊ฒฝ์šฐ์˜ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋Š” sweetalert์— ์˜ํ•ด ์ƒ์„ฑ๋˜์ง€๋งŒ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€์žˆ๋‹ค
์ œ ๊ฒฝ์šฐ์—๋Š” ๋ชจ๋‹ฌ์— ๋ฒ„ํŠผ์ด ์žˆ์œผ๋ฉฐ ๋ฒ„ํŠผ์€ ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํด๋ฆญํ•˜๋ฉด swal์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ๋Š” ์˜ค๋ฅ˜๊ฐ€ ์—†์ง€๋งŒ ๊ณ„์† ์ง„ํ–‰ํ•˜๊ณ  '์ทจ์†Œ' ๋˜๋Š” 'ํ™•์ธ' ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์˜ค๋ฅ˜.

์ง€๊ธˆ์€ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์˜ ๊ฒฝ๊ณ  ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์—ฐ๊ธฐํ•˜๋ฉด์„œ ์ด ๋ฌธ์ œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ๋ถ€๋”ชํ˜€ ์ ์ ˆํ•œ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด ๋ƒˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋‹ฌ์„ ์ˆจ๊ธฐ๊ณ  swal์„ ํ‘œ์‹œํ•˜๊ณ  ํ™•์ธ ์‹œ ๋ชจ๋‹ฌ์„ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ™•๋Œ€ ํŒ์—…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

$('.mfp-wrap').hide();
swal({
    title: "Updated!",
    text: "#" + data.updateData['number'] + " was successfully updated",
    type: "success"
},
function(isConfirm) {
    $('.mfp-wrap').show();
});

์ด๊ฒƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ @littleneotrix ๊ฐ€ ๋งํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ฒ˜์Œ์— ๊ทธ์˜ ์„ค๋ช…์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๊ณ  ๋” ์ž์„ธํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋Œ€ํ•ด ์ถฉ๋ถ„ํžˆ ์šฐ์•„ํ•œ ์†”๋ฃจ์…˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์งˆ๋ฌธํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์€ ๋งŽ์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด์ค‘ ๋ชจ๋‹ฌ๊ณผ ์ฝœ๋ฐฑ์€ ๋ฌด๊ฒ์Šต๋‹ˆ๋‹ค.

์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ฃผ์„:
$targetElement.focus ();
_์•„๋งˆ๋„ 413๋ฒˆ ์ค„์—._

๊ทธ๋ƒฅ ์ถ”๊ฐ€ $.fn.modal.Constructor.prototype.enforceFocus = function () {}; ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— swal(...);

ํ•˜๋‚˜์˜ ๋ฌธ์ œ๋กœ ์œ ์ง€ํ•ฉ์‹œ๋‹ค: https://github.com/aspnetboilerplate/aspnetboilerplate-templates/issues/48

SweetAlert 2.0์—์„œ ๋‹ค์‹œ ์‹œ๋„ํ•ด ๋ณด์‹ญ์‹œ์˜ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰