
ボタンを自動クリックするスクリプトは
setInterval( function() {
var load =document.getElementsByClassName('load-more')[0];
if(load.style.display != 'none') load.click();
});
という感じで書けて動作したのですが、例えば
if(load.style.display != 'none') load.click();
},10000);
などとした場合、表示されていない下の方にボタンがある場合でも延々とクリックされてしまいますよね?
load-moreのボタンが画面内にある時だけ自動クリックさせたいのですが、そのようなことは可能でしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは
Greasemonkeyはまったく存じませんが・・・
>画面内にある時だけ自動クリックさせたいのですが、
>そのようなことは可能でしょうか?
可能だと思います。
対象要素(var load)のドキュメント内の位置を取得して、
・そのtop位置が画面のscroll量以上で
・bottom位置が(画面のscroll量 + 表示画面の高さ)より小さければ
要素全体が表示されていると判断できます。
※ 横方向にもスクロールする場合は、横方向のチェックも必要です
※ 要素が全部表示されていなくても、少しでも見えているという場合は、上記と似た計算で判断可能でしょう。
上記の判断で、クリックするかどうか分岐すればよいのでは?
ただし、ご提示のスクリプトではInterval処理を止める記述がないみたいなので(どこか他にあるのかも知れませんが)、クリックするしないに関わらず処理自体は延々と繰り返されます。
遅延時間を指定したとしても、クリックしてから指定時間経っても同じような表示状態だと、条件判断を追加していても、やはり連続クリックが発生する可能性はあるでしょう。
No.1
- 回答日時:
> if(load.style.display != 'none') load.click();
なら
if(load.style.display != 'none'){
load.style.display = 'none';
load.click();
}
と一度クリックしたら隠してしまうとか
if(load.style.display != 'none' && !load.getAttribute('data-flg')){
load.setAttribute('data-flg',1);
load.click();
}
のように、フラグを立ててやればよいのでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードで直径4cmの円を作成...
-
リンクに飛べる様にする際 「C...
-
ワードのハイパーリンク、Ctrl...
-
E-mailの署名について
-
アイコンに、四角い枠が出来て...
-
パソコンの画面上に黒い四角が...
-
PC上からメールのアイコンが消えた
-
ヤフー。トップページに戻ると1...
-
マイページの出し方が分かりま...
-
ワードで作った文章を筆ぐるめ2...
-
windows2000で x86かx64の確認...
-
ウインドウ10で機内モードをオ...
-
2週間ほど前からtokyomotionと...
-
メールソフト「Thunderbird」で...
-
Windows Defender Scheuled Sca...
-
ワードプレスの403Errorの消し...
-
パソコン画面が上半分しか表示...
-
【Finale】MIDI機器が反応せず...
-
MT4のアラート設定で、アラート...
-
ユーザー名に大文字を使用して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードで直径4cmの円を作成...
-
リンクに飛べる様にする際 「C...
-
E-mailの署名について
-
マイページの出し方が分かりま...
-
アイコンに、四角い枠が出来て...
-
ワードのハイパーリンク、Ctrl...
-
パソコンの画面上に黒い四角が...
-
グーグルマップのストリートビュー
-
PC上からメールのアイコンが消えた
-
PCのグーグルマップで現在地が...
-
日本語入力がひっきりなしにフ...
-
windows11フォトビューア
-
ヤフー。トップページに戻ると1...
-
QRコード読み取り後、一発でメ...
-
ワードで作った文章を筆ぐるめ2...
-
C# MenuStripを開いた状態にしたい
-
画面内にボタンがある時だけ自...
-
クリック?クイック?
-
アドレスバー
-
教えてGoo って プロフィールか...
おすすめ情報