人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Webページ内で実行中のjavascriptの動作を停止するためのJavascriptコードを教えてください。

chromeに自動スクロールするブックマークレットを登録して、webページ閲覧時のスクロールを自動でできるようにしました。
javascript:setInterval(function(s)%7BscrollBy(1,s%7C%7C1)%7D,10)

自動スクロール中にクリックしたい部分が出てきた際にこのスクロール動作を停止したいですが、停止の仕方がわかりません。
ブックマークレットからの実行で停止したいので、停止するためのjavascriptコードを教えてください。

Macbookでトラックパッド利用なので中ボタンクリックのスクロールモードがありません。
javascript実行でスクロールは手放しで自動スクロールするので用途的にもJS実行が便利です。
停止のJSブックマークレットができればやりたいことが完成します。

よろしくお願いします。

●質問者: kimidorikinoko
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● shidho
●100ポイント ベストアンサー

setInterval()の実行は、clearInterval()で止めることが出来ます。
おそらく javascript:clearInterval(); なブックマークレットで止められると思います。
他に、元のブックマークレットを
javascript:var id = setInterval(function(s)%7BscrollBy(1,s%7C%7C1)%7D,10)
としておき、
javascript:clearInterval(id);としておいたほうが確実かもしれません。

(この例では、ブックマークレットを複数回押されたときのこと、元のページでグローバルにidという変数が定義されていたときのことは考慮していません)


kimidorikinokoさんのコメント
ありがとうございます。お教えいただいた2つのコードで実行と停止できました。回答が遅くなりましたすみません。

2 ● Lhankor_Mhy
●0ポイント

clearInterval を使ってください。
no title


3 ● ぽけっとしすてむ
●0ポイント
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にて整形しています。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ