firefoxやchromeでJSが動いてるときに「ボタン1つで一時停止」のような機能はありませんでしょうか?
F12を押した瞬間に停まって、また押すと動き出す。のような。
または動き出さなくても指定時間で停まってくれればいいのですが…
ずっと止めるのではなく、動いてる最中に「今だ」と停めたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
デバッグ的な用途で使うなら
グローバルにフラグ変数を用意しといて
js
1window.stop = false;
ソースコードのいたるところにこんなの埋め込んどいて
js
1if (window.stop) debugger;
好きなタイミングでwindow.stop = true
にしてあげれば、debugger;
のところで停止します。
再開はデベロッパツールから再開で。
再開させる際にwindow.stop = false
に書き換えないとまたすぐ止まるので、再開時にはフラグを落としましょう。
投稿2018/09/26 14:04
総合スコア1803
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/27 03:24
2018/09/27 10:03
2018/09/27 11:41
2018/09/28 02:04 編集
2018/09/28 02:19 編集
2018/09/28 06:49
2018/09/28 13:01
2018/09/28 21:09

0
「指定箇所で止める」ブレイクポイントというのがありますがそれでは要件と違いますか?
でなければ任意のタイミングでsetTimeOut使うとかですかね。
今の質問内容だけでは具体的な要件が見えてこないですね
投稿2018/09/26 13:28
編集2018/09/26 13:30総合スコア80888
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/27 03:28 編集
2018/09/28 02:57

0
コード上で止める
コード上のロジックで止めるのなら、関数コード単位で処理の実行/停止を判定させる必要があります。
HTML
1<input type="button" id="stop" value="stop" /> 2 3<script> 4'use strcit'; 5(() => { 6 function handleClick (event) { 7 this.iterator1.stop = true; 8 event.preventDefault(); 9 } 10 11 function handleTimeout (iterator1) { 12 const result = iterator1.next(); 13 14 console.log(result.value); 15 if (!result.done) setTimeout(handleTimeout, 1000, iterator1); 16 } 17 18 (() => { 19 const iterator1 = { 20 i: 0, 21 length: 100, 22 stop: false, 23 next: function next () { 24 return {value: ++this.i, done: this.stop || this.i >= this.length}; 25 } 26 }; 27 28 document.getElementById('stop').addEventListener('click', { 29 handleEvent: handleClick, 30 iterator1: iterator1 31 }, false); 32 33 setTimeout(handleTimeout, 1000, iterator1); 34 })(); 35})(); 36</script>
止めやすいように、setTimeout
で遅延処理を入れていますが、通常は手動で止める間もなく、処理が終了してしまうと思われます。
また、コメントでも書きましたが、JavaScriptはシングルスレッドで動作するので、処理の途中で割り込んで止めるのは難しいと思います。
(ServiceWorker
でマルチスレッド化する事で実現可能となる可能性があるので、不可能とまではいいません)
開発者ツール
ブラウザの開発者ツールを利用する場合、「ブレークポイント」「ステップ実行」が想定されている用途に近いと思われます。
- Pause Your Code With Breakpoints | Tools for Web Developers | Google Developers
- コードをステップ実行する方法 | Tools for Web Developers | Google Developers
- ブレークポイントを設置する - 開発ツール | MDN
- コードをステップ実行する - 開発ツール | MDN
Re: skipping さん
投稿2018/09/28 12:39
編集2018/09/28 12:40総合スコア18194
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。