是否有可能暂停javascript执行,直到按下某个特定按钮,或者超时...?
someCalls()
someCode()
...
stopUntilEvent() // could be after time, or in page button is pressed...
...
moreArbitraryCalls()
现在我能想到的唯一方法就是使用浏览器的alert
或confirm
对话框。有什么方法可以用类似的行为来创建我自己的对话框吗?
答案 0 :(得分:0)
我不太确定你在问什么。
如果您希望在保持页面交互的同时停止执行某些代码,那么实际上并不是一种简单的方法。您可以采取任何想要暂停的进程,然后将其分解为一系列检查标志的步骤,然后继续执行或等待,直到标志的状态发生变化,偶尔通过setTimeout
轮询标志。类似的东西:
<button id="pause">Pause</button>
<script>
var currentStep = 0,
pauseButton = document.getElementById('pause'),
pauseSteps = false,
steps = [
function () { /* step one */},
function () { /* step two */},
function () { /* etc. */}
],
doSteps = function () {
if (currentStep < steps.length) {
if (!pauseSteps) {
steps[currentStep]();
currentStep += 1;
} else {
setTimeout(doSteps, 250);
}
}
};
pauseButton.addEventListener('click', function (e) {
var newText;
e.preventDefault();
newText = pauseSteps ? 'Resume' : 'Pause';
pauseButton.textContent = newText;
pauseSteps = !pauseSteps;
}, false);
doSteps();
</script>
如果您只想打破调试器,可以使用debugger;
statement,它将暂停执行,就像您在调试器中手动设置断点一样。