我想下面的老同學片段轉換爲alertify.js 0.3.8:遞歸與alertify.js導致自動關閉警報
window.doPrompt = function() {
var str;
do str = prompt("Enter your name");
while (str === "" && (alert("Can't be empty!") || true));
if (str) document.getElementsByTagName("body")[0].innerHTML += ("<pre>Your name is: " + str + "</pre>");
}
這是我第一次嘗試:
window.doPrompt = function() {
alertify.prompt(
"Enter your name",
function(confirmed, str) {
if (confirmed) {
if (str.length === 0) {
alertify.alert(
"Can't be empty!",
function() { doPrompt(); }
);
} else {
document.getElementsByTagName("body")[0].innerHTML += ("<pre>Your name is: " + str + "</pre>");
}
}
}
);
}
它不按預期工作。例如,在Firefox 19中,如果您使用鍵盤將提示提交爲空,則「錯誤」警報將僅顯示很短的時間,然後會自行消失,這不是以前的工作方式。
我試圖通過在每個alertify調用周圍插入調用window.setTimeout
並將超時設置爲0
來中斷遞歸。它沒有幫助。
如果你可以推薦一個替代JavaScript庫,並且可以使用我可以使用的類似API(當然沒有這個問題)。