次の古い学校のスニペットをalertify.js0.3.8に変換しようとしています。
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
それは役に立たなかった。
代わりに使用できる同様のAPIを備えた代替JavaScriptライブラリを推奨していただければ問題ありません(もちろん、この問題はありません)。