Sweetalert: λ‹¬μ½€ν•œ κ²½κ³ κ°€ νŒμ—…λ˜λ©΄ 탭이 μ–‘μ‹μ—μ„œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2015λ…„ 06μ›” 27일  Β·  21μ½”λ©˜νŠΈ  Β·  좜처: t4t5/sweetalert

λ²„νŠΌ ν΄λ¦­μ‹œ νŒμ—…λ˜λŠ” html μ–‘μ‹μ—μ„œ sweet alert을 μ‚¬μš©ν•˜κ³  μžˆμ§€λ§Œ νŒμ—…μ˜ 확인 λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄ κ·Έ 이후에 νƒ­ μΈλ±μŠ€κ°€ μž‘λ™ν•˜μ§€ μ•Šκ³  λͺ¨λ“  ν•„λ“œλ₯Ό ν΄λ¦­ν•˜μ—¬ μ±„μ›Œμ•Όν•©λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@kosst 예, @edwin1217 의

λ‹€μ‹œ ν•œ 번 λ‚˜μ—κ²Œ κ°€μž₯ 잘 λ§žλŠ” 것은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

(function (){
    var close = window.swal.close;
    window.swal.close = function() {
        close();
        window.onkeydown = null;
    };
})();

λͺ¨λ“  21 λŒ“κΈ€

같은 생각이 λ‚˜μ—κ²Œλ„ μΌμ–΄λ‚©λ‹ˆλ‹€.

λ„€, μ €μ—κ²Œλ„ μΌμ–΄λ‚©λ‹ˆλ‹€. λ˜ν•œ Enter ν‚€λ₯Ό 눌러 νŒμ—…μ„ λ‹«μœΌλ©΄ νŽ˜μ΄μ§€μ—μ„œ ν¬μ»€μŠ€κ°€ 제거되고 ν΄λ¦­ν•˜μ§€ μ•Šκ³ λŠ” νŽ˜μ΄μ§€μ— λ‹€μ‹œ 포컀슀λ₯Ό λ‘˜ 수 μ—†μŠ΅λ‹ˆλ‹€.

doneFunctionμ—μ„œ μ°½ 이벀트λ₯Ό μ œκ±°ν•˜λ©΄ 이 λ¬Έμ œκ°€ ν•΄κ²°λ©λ‹ˆλ‹€.

swal({
  title: "Are you sure?",
  text: "You will not be able to recover this imaginary file!",
  type: "warning",
  showCancelButton: true,
  confirmButtonColor: "#DD6B55",
  confirmButtonText: "Yes, delete it!",
  closeOnConfirm: false
}, function(){

  // remove these events;
  window.onkeydown = null;
  window.onfocus = null;

  swal("Deleted!", "Your imaginary file has been deleted.", "success");
});

@fxghqc μ½œλ°±μ—μ„œ 이벀트 ν•Έλ“€λŸ¬λ₯Ό μ œκ±°ν•˜λ©΄ μ €μ—κ²Œ νš¨κ³Όμ μž…λ‹ˆλ‹€. 이 버그λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ 이것을 메인 μ½”λ“œμ— 포함할 수 μžˆμŠ΅λ‹ˆκΉŒ?

+1

μ–Έμ œ μˆ˜μ •λ˜λ‚˜μš”?

+1

λ‚΄κ°€ μž‘μ—…ν•  수 μžˆλŠ” 이 λ²„κ·Έμ˜ 포크가 μžˆμŠ΅λ‹ˆκΉŒ? @xiaouze88 의 컀밋을 μ–΄λ–»κ²Œ μ‚¬μš©ν•˜λŠ”μ§€ 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.
이 버그와 κ΄€λ ¨ν•˜μ—¬ μ„±κ°€μ‹  λ¬Έμ œλ„ μžˆμŠ΅λ‹ˆλ‹€.

이 λ²„κ·ΈλŠ” μ—¬μ „νžˆ μ‘΄μž¬ν•©λ‹ˆλ‹€. sweetalert 메인 데λͺ¨ νŽ˜μ΄μ§€μ—μ„œλ„ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€... http://t4t5.github.io/sweetalert/

AJAX 예제의 Try Me λ²„νŠΌμ„ ν΄λ¦­ν•˜κΈ°λ§Œ ν•˜λ©΄ 탭이 더 이상 μž‘λ™ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. λ””λ²„κ±°μ—μ„œ window.onfocusκ°€ null둜 λ³΅μ›λ˜μ§€ μ•ŠλŠ” 것을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. μˆ˜λ™μœΌλ‘œ μ„€μ •ν•˜λ©΄ 탭을 λ‹€μ‹œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ swal()에 μ „λ‹¬λœ 콜백 ν•¨μˆ˜μ—μ„œ null둜 μ„€μ •ν•˜λ©΄ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 그것을 null둜 μ„€μ •ν–ˆμ§€λ§Œ Sweetalert λ‚΄λΆ€μ˜ λ‹€λ₯Έ 무언가가 전체 ν”„λ‘œμ„ΈμŠ€κ°€ λλ‚˜κΈ° 전에 λ‹€μ‹œ μ„€μ •ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λͺ‡ 초 후에 디버거에 μΉ¨μž…ν•˜λ©΄ 이λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.

κ³ μ³μ£Όμ„Έμš”!

이 행동도 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 간헐적이야, 졜고의 버그 μœ ν˜•...
λŒ€ν™” μƒμžκ°€ λ‹«νžŒ 후에도 window.onkeydown μ΄λ²€νŠΈκ°€ ν•¨μˆ˜μ— λ°”μΈλ”©λ˜λŠ” 것을 보고 μžˆμŠ΅λ‹ˆλ‹€. λŒ€ν™” μƒμžκ°€ 트리거되기 전일 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

저도 λ˜‘κ°™μ€ 문제λ₯Ό κ²ͺκ³  μžˆμŠ΅λ‹ˆλ‹€. SweetAlert νŒμ—…μ΄ λ‹«νžˆλ©΄ tabindex μ„€μ •λœ κ²½μš°μ—λ„ νŽ˜μ΄μ§€ μ–‘μ‹μ˜ 탭이 μž‘λ™μ„ 멈μΆ₯λ‹ˆλ‹€.

λ‚˜λŠ” 이것을 μˆ˜μ •ν•˜μ—¬ 내일 PR을 ν•  것이닀.
2017λ…„ 1μ›” 3일 ν™”μš”μΌ 21:15 Neel [email protected]μ—μ„œ λ‹€μŒκ³Ό 같이 μΌμŠ΅λ‹ˆλ‹€.

저도 λ˜‘κ°™μ€ 문제λ₯Ό κ²ͺκ³  μžˆμŠ΅λ‹ˆλ‹€. SweetAlert νŒμ—… μ‹œ
κ°€ λ‹«νžˆλ©΄ tabindexκ°€ μ„€μ •λœ κ²½μš°μ—λ„ νŽ˜μ΄μ§€ μ–‘μ‹μ˜ 탭이 μž‘λ™μ„ 멈μΆ₯λ‹ˆλ‹€.

β€”
당신이 λŒ“κΈ€μ„ λ‹¬μ•˜κΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/t4t5/sweetalert/issues/391#issuecomment-270197639 ,
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/AHWwZbRIQD1HLSs4WpN87HRyeBlvGgcuks5rOp43gaJpZM4FNSiU
.

정말 λŒ€λ‹¨ν•©λ‹ˆλ‹€ @EduardJS κ°μ‚¬ν•©λ‹ˆλ‹€.

μ§€κΈˆμ€ λ‹€λ₯Έ μŠ€λ ˆλ“œμ—μ„œ @JustinWinthers 의 μ†”λ£¨μ…˜μ„ μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

(function (){

    var _swal = window.swal;

    window.swal = function(){

        var previousWindowKeyDown = window.onkeydown;

        _swal.apply(this, Array.prototype.slice.call(arguments, 0));

        window.onkeydown = previousWindowKeyDown;

    };

})();

μ°Έμ‘° :

@읡λͺ…씨
μ—…λ°μ΄νŠΈ

var _swalclose=window.swal.close;
var _swal = window.swal;
window.swal = ν•¨μˆ˜(){
var previousWindowKeyDown = window.onkeydown;
_swal.apply(이, Array.prototype.slice.call(인수, 0));
window.onkeydown = μ΄μ „μ°½ν‚€λ‹€μš΄;
};
window.swal.close=ν•¨μˆ˜(){
_swalclose.apply(이);
};

μš°μ™€! 방금 이 μŠ€λ ˆλ“œλ₯Ό μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. 탭이 μž‘λ™ν•˜λŠ” 이유λ₯Ό κΆκΈˆν•΄ν•˜λ‹€κ°€ 며칠을 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. 이제 λ‚˜λŠ” λ•Œλ•Œλ‘œ sweetalerλ₯Ό μ‚¬μš©ν•œλ‹€λŠ” 것을 κΉ¨λ‹«κ³  그것이 μ€‘λ‹¨λœ μ΄μœ μž…λ‹ˆλ‹€!

μ—¬μ „νžˆ 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ…Έλ ₯ν•˜κ³  μžˆλŠ” μ‚¬λžŒμ΄ 있으며 ν˜„μž¬λ‘œμ„œλŠ” 이λ₯Ό μ²˜λ¦¬ν•  수 μžˆλŠ” μ΅œμ„ μ˜ μ†”λ£¨μ…˜μ΄ λ¬΄μ—‡μž…λ‹ˆκΉŒ?

νŽΈμ§‘: 방금 μœ„μ˜ sweetalert2 λ©”μ‹œμ§€λ₯Ό λ³΄μ•˜μŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ 버전이 μžˆλŠ”μ§€ λͺ°λžκΈ° λ•Œλ¬Έμ— μ‹œλ„ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•˜λ €λ©΄ ν•΄μ•Ό ν•  일이 κ½€ λ§ŽμŠ΅λ‹ˆλ‹€!

@elasticsteve 이 μ €μž₯μ†Œμ˜ λ‹€λ₯Έ μŠ€λ ˆλ“œμ— 주의λ₯Ό 기울이면 이 μŠ€λ ˆλ“œκ°€ 더 이상 μœ μ§€λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ‹€μ œλ‘œ 앱을 이식해야 ν•˜λŠ” SweetAlert2 λΌλŠ” 또 λ‹€λ₯Έ μ €μž₯μ†Œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

κ·Έλž˜λ„ 이 버전을 계속 μ‚¬μš©ν•˜λ €λ©΄ 이 μ†”λ£¨μ…˜μ΄ μœ μΌν•œ μ†”λ£¨μ…˜μž…λ‹ˆλ‹€. ν™λ³΄ν•˜λŠ” κ±Έ κΉœλΉ‘ν–ˆλ„€μš”.. μ‹œκ°„μ΄ λΆ€μ‘±ν–ˆμ–΄μš”. @edwin1217 의 μ†”λ£¨μ…˜μ€ ν•¨κ»˜ κ°€μ•Ό ν•˜λŠ” μ†”λ£¨μ…˜μž…λ‹ˆλ‹€.

@edwin1217 의 μ†”λ£¨μ…˜μ€

κ°μ‚¬ν•©λ‹ˆλ‹€. SweetAlert2둜 μ΄μ‹ν•˜λ €κ³  ν–ˆμ§€λ§Œ 포기해야 ν–ˆμŠ΅λ‹ˆλ‹€. closeOnConfirm: false μž‘μ—…μœΌλ‘œ κ°„λ‹¨ν•œ ν…μŠ€νŠΈ μž…λ ₯을 ν•  수 μ—†μŠ΅λ‹ˆλ‹€. 3μ‹œκ°„μ„ ν—ˆλΉ„ν•œ 후에 λ‹€μ‹œ λ˜λŒμ•„κ°€μ„œ μœ„μ˜ μ œμ•ˆμ„ μ‹œλ„ν•  κ²ƒμž…λ‹ˆλ‹€.

@kosst 예, @edwin1217 의

λ‹€μ‹œ ν•œ 번 λ‚˜μ—κ²Œ κ°€μž₯ 잘 λ§žλŠ” 것은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

(function (){
    var close = window.swal.close;
    window.swal.close = function() {
        close();
        window.onkeydown = null;
    };
})();

}

정말 μ˜€λžœλ§Œμ΄λΌλŠ” κ±Έ μ•Œμ§€λ§Œ λ‹€λ₯Έ ν•¨μˆ˜μ—μ„œ 이 ν•¨μˆ˜λ₯Ό μ „μ²΄μ μœΌλ‘œ ν˜ΈμΆœν•  수 μžˆλŠ” 방법을 μΉœμ ˆν•˜κ²Œ μ„€λͺ…ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ? μ»¨νŠΈλ‘€λŸ¬μ—μ„œ 이 μŠ€λ‹ˆνŽ«μ„ 어디에 λ°°μΉ˜ν•΄μ•Ό ν•©λ‹ˆκΉŒ?

function(isConfirm){  //Function that triggers on user action.
        if(isConfirm){
          $scope.myData.splice(index,1);
          SweetAlert.swal("Deleted!");
        } else {
            SweetAlert.swal("Your file is safe!");
        }

λ³€ν™” -
closeOnConfirm: 거짓
μ—κ²Œ -
closeOnConfirm: 사싀

그게 λ‹€μ•Ό ... 그것은 λ‚˜λ₯Ό μœ„ν•΄ μΌν–ˆμŠ΅λ‹ˆλ‹€

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰