[解決済み] javascriptでボタンのクリックをシミュレートできますか?
2022-03-06 17:46:30
質問
マクロを自由に動かせると困るようなサイトをデザインしています。
ボタンをクリックしたときのHTTPリクエストをシミュレートして作られたマクロを止める方法を考えましたが、ボタンをクリックするだけで通常のユーザーと同じように操作できるjavascriptスクリプトを挿入することができれば、それも無駄になってしまいます。
ボタンクリックをシミュレートするというのは、ボタンが押され、ボタンがあるフォームがそれに関連するphpコードとともに実行されるという意味です。
論理的にはjavascriptで可能だと思うのですが、確実に知りたいのです。
~アンドリュー
解決方法は?
ボタンは常にプログラムによってクリックされる場合があります。例えば、このようなフォームを持つページがあるとします。
<form>
<input type="text" />
<button>Do something</button>
<input type="submit">
</form>
と入力すれば、デバッグコンソールを開いて
document.getElementsByTagName('button')[0].click();
をクリックする、または
document.getElementsByTagName('input')[1].click();
で、フォームの送信ボタンをクリックするか、あるいは単に
document.forms[0].submit();
をクリックすると、ボタンをクリックせずにフォームを送信することができます。
クライアント側でユーザがJavaScriptのコードを使いこなすのを防ぐ方法はありません。サーバー側で何らかのバリデーションを追加して、望ましくないユーザーの行動を防ぐ必要があります。
関連
-
[解決済み] テスト
-
[解決済み】SyntaxError: 期待された式が、'<'を得た。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Uncaught ReferenceError: angular is not defined - AngularJSが動作しない。
-
[解決済み】webpack: モジュールが見つかりません。Error: 解決できない(相対パスで)
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み】SyntaxError: ChromeのJavascriptコンソールでUnexpected Identifierが発生する。
-
[解決済み】XMLパースエラー:ルート要素が見つからない コンソールの場所 FF
-
[解決済み】TypeError: res.status は関数ではありません。
-
[解決済み】Babel NodeJS ES6: SyntaxError: 予期しないトークンのエクスポート
-
[解決済み】 \u003C とは何ですか?
-
[解決済み] [Solved] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングする