chromeに自動スクロールするブックマークレットを登録して、webページ閲覧時のスクロールを自動でできるようにしました。
javascript:setInterval(function(s)%7BscrollBy(1,s%7C%7C1)%7D,10)
自動スクロール中にクリックしたい部分が出てきた際にこのスクロール動作を停止したいですが、停止の仕方がわかりません。
ブックマークレットからの実行で停止したいので、停止するためのjavascriptコードを教えてください。
Macbookでトラックパッド利用なので中ボタンクリックのスクロールモードがありません。
javascript実行でスクロールは手放しで自動スクロールするので用途的にもJS実行が便利です。
停止のJSブックマークレットができればやりたいことが完成します。
よろしくお願いします。
setInterval()の実行は、clearInterval()で止めることが出来ます。
おそらく javascript:clearInterval(); なブックマークレットで止められると思います。
他に、元のブックマークレットを
javascript:var id = setInterval(function(s)%7BscrollBy(1,s%7C%7C1)%7D,10)
としておき、
javascript:clearInterval(id);としておいたほうが確実かもしれません。
(この例では、ブックマークレットを複数回押されたときのこと、元のページでグローバルにidという変数が定義されていたときのことは考慮していません)
setInterval()の実行は、clearInterval()で止めることが出来ます。
おそらく javascript:clearInterval(); なブックマークレットで止められると思います。
他に、元のブックマークレットを
javascript:var id = setInterval(function(s)%7BscrollBy(1,s%7C%7C1)%7D,10)
としておき、
javascript:clearInterval(id);としておいたほうが確実かもしれません。
(この例では、ブックマークレットを複数回押されたときのこと、元のページでグローバルにidという変数が定義されていたときのことは考慮していません)
ありがとうございます。お教えいただいた2つのコードで実行と停止できました。回答が遅くなりましたすみません。
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にて整形しています。
ありがとうございます。お教えいただいた2つのコードで実行と停止できました。回答が遅くなりましたすみません。
2019/05/12 21:12:12