: (showError는 jQuery를 대화 상자 또는 사용자와 통신 할 다른 방법을 사용하는 경우)이 예를 들어 다음과 같이 수행 할 수 있습니다.
실행 중 페이지에서 모든 기능을 차단합니다 (사용자가 마지막 대화 상자를 닫은 후 3 초 미만이라고 가정 함). 그러나 코드를 작성할 필요가 없으므로 재귀 또는 setTimeout 함수를 사용하는 것이 좋습니다. 대화 상자가 나타날 때까지 기다리는 동안 다른 것이 클릭되거나 트리거 될 가능성.
이미 Modalbox에 포함 된 보고서에 오류/확인/확인을 표시 할 때 가장 필요합니다. 추가 대화 상자에 div를 추가 할 수는 있지만 기본 대화 상자를 사용할 수 있으면 불필요한 것처럼 보입니다.
dom.successive_dialog_time_limit이 3보다 큰 값으로 변경되고 Chrome에 Firefox와 동일한 기본값이 있는지 여부도 알 수 없습니다. 그러나 적어도 그것은 선택 사항입니다.
누구든지 개선 할 수 있다면 역시하십시오!
// note that these should not be in the global namespace
var dlgRslt,
lastTimeDialogClosed = 0;
function dialog(msg) {
var defaultValue,
lenIsThree,
type;
while (lastTimeDialogClosed && new Date() - lastTimeDialogClosed < 3001) {
// timer
}
lenIsThree = 3 === arguments.length;
type = lenIsThree ? arguments[2] : (arguments[1] || alert);
defaultValue = lenIsThree && type === prompt ? arguments[1] : '';
// store result of confirm() or prompt()
dlgRslt = type(msg, defaultValue);
lastTimeDialogClosed = new Date();
}
사용은 :
dialog('This is an alert.');
dialog('This is a prompt', prompt);
dialog('You entered ' + dlgRslt);
dialog('Is this a prompt?', 'maybe', prompt);
dialog('You entered ' + dlgRslt);
dialog('OK/Cancel?', confirm);
if (dlgRslt) {
// code if true
}
브라우저는 JS 코드가 약간의 버그가 그것이 어떤 종류의 매우 자주 메시지를 표시하고 있다고 생각 루프 따라서 브라우저는 사용자에게이 경고 상자를 허용하지 않을 수있는 옵션을 제공합니다. – Ankur
Chrome은이 경고의 내용이나 길이에 관계없이 두 번째'경고 '부터 이것을 보여줍니다. –
@ShadowWizard 오늘 현재까지는 경과 한 이전 알림이 닫힌 이후로 타이머는 약 1 초 정도입니다. – Dan