質問: Webページ内で実行中のjavascriptの動作を停止するためのJavascriptコードを教えてください。 chromeに自動スクロールするブックマークレットを登録して、webページ閲覧時のスクロールを自動でできるようにしました。 javascript:setInterval(function(s)%7BscrollBy(1,s%7C%7C1)%7D,10) 自動スクロール中にクリックしたい部分が出てきた際にこのスクロール動作を停止したいですが、停止の仕方がわかりません。 ブックマークレットからの実行で停止したいので、停止するためのjavascriptコードを教えてください。 Macbookでトラックパッド利用なので中ボタンクリックのスクロールモードがありません。 javascript実行でスクロールは手放しで自動スクロールするので用途的にもJS実行が便利です。 停止のJSブックマークレットができればやりたいことが完成します。 よろしくお願いします。
回答: ``` javascript:window.qDOThatenaDOT1557452747=function(){var b=0;(function(){b=setInterval(function(c){scrollBy(1,c||1)},10)})();window.onclick=function(){clearInterval(b);delete window.qDOThatenaDOT1557452747}};window.qDOThatenaDOT1557452747(); ``` 動作確認と元のコードはこちらです。 ※横スクロールがあるページでは斜めにスクロールしていますが、元のブックマークレットでも同じ挙動をしていたので、そのまま適用しています。 コードはClosure Compilerにて整形しています。