[解決済み] デベロッパーツールを使って、Chromeのボタンや要素で実行されるコードを調べる方法
質問
Chromeと自分のホームページを使用しています。
内部からわかること
1 ) このオレンジ色の画像ボタンをクリックすると登録されるようなフォームがあります。
2
) 点検すると、これだけです。
<img class="formSend" src="images/botoninscribirse2.png">
3
) ソースコードの先頭には、大量のスクリプトのソースがあります。どのボタンが呼び出されるかは、私がコーディングしたので知っています。
<script src="js/jquery2.js" type="text/javascript"></script>
4
) そのファイルの中で、あなたは見つけることができました。
$(".formSend").click(function() { ... });
これはボタンによってトリガーされるもので、(かなり複雑なフォーム検証と送信を行うため)そして
を見つけることができるようにしたいのです。
どのウェブサイトでも、クロームの開発ツールを使って。
要素の呼び出し先を調べるにはどうしたらいいですか?
リスナータブは私の場合、機能しませんでした。そこで、クリックイベントのリスナーを探そうとしたのですが、これは安全策に思えたのですが...
jquery2.js
というのも、そのコードがどのファイルにあるのかがよく分からないので、これらをすべてチェックするのは時間の無駄だからです。
私の
$(".formSend").click(function() { ... });
の中の関数
jquery2.js
ファイルが存在しない。
ジェシー 説明 なぜ :
最後に、あなたの関数がクリックイベントハンドラに直接バインドされていない理由は、jQueryがバインドされた関数を返すからです。jQueryの関数は、次にいくつかの抽象化レイヤーとチェックを経て、そのどこかであなたの関数を実行します。
何人かの方からご提案いただいたように、効果のあった方法を集めてみました。 を1つの回答としてまとめました。 .
どのように解決するのですか?
解決策1:フレームワークのブラックボックス化
最小限のセットアップとサードパーティを排除した素晴らしい作品です。
によると Chromeのドキュメント :
<ブロッククオートスクリプトをブラックボックス化するとどうなるのか?
ライブラリコードからスローされる例外 は一時停止しません (Pause on ステップイン/ステップアウト/ステップオーバーはライブラリにバイパスされます。 イベントリスナーブレークポイントはライブラリコードではブレークしません。 デバッガは、ライブラリコードに設定されたブレークポイントでは一時停止しません。そのため 最終結果は アプリケーションのコードをデバッグしている サードパーティーの代わりに のリソースを使用します。
以下は、更新されたワークフローです。- Chromeデベロッパーツール( F12 または ⌘ + ⌥ + i )、設定に進みます(右上、または F1 ). 左側にある「"」というタブを探します。 ブラックボックス化 "
-
ここには
RegEx
のパターンで、デバッグ中に Chrome に無視させたいファイルを指定します。例えば
jquery\..*\.js
(グロブパターン/ 人間 を翻訳します。jquery.*.js
) -
を持つファイルをスキップしたい場合
複数のパターン
を使用すると、パイプ文字を使用してそれらを追加することができます。
|
というように。jquery\..*\.js|include\.postload\.js
(これはいわば、"またはこのパターン"のような役割を果たします。または、"Add"ボタンでどんどん追加してください。 - では、続けて 解決策3 以下、説明します。
ボーナスチップ 私が使っているのは Regex101 を定期的に使っています(他にもたくさんありますが:)。錆び付いた正規表現パターンを素早くテストし、ステップバイステップの正規表現デバッガでどこが間違っているのかを見つけることができます。 もしあなたがまだ正規表現に精通していないのであれば、次のようなサイトを使い始めることをお勧めします。 http://buildregex.com/ と https://www.debuggex.com/
ソースパネルで作業する際にも、コンテキストメニューを使用することができます。ファイルを表示しているときに、エディタ内で右クリックし、Blackbox Scriptを選択することができます。これにより、そのファイルが設定パネルのリストに追加されます。
解決策2:ビジュアルイベント
<ブロッククオート
Visual Event は、オープンソースの Javascript ブックマークレットで、以下の機能を提供します。 DOM にアタッチされたイベントに関するデバッグ情報 要素で構成されています。ビジュアル・イベントの表示
- どの要素にイベントが付随しているか
- 要素に付随するイベントの種類
- イベントが発生したときに実行されるコード
- 添付関数が定義されたソースファイルと行番号(Webkit ブラウザおよび Opera のみ)。
解決策3:デバッグ
ページ内のどこかをクリックしたときや、DOMが変更されたときに、コードを一時停止することができます...と。 他の種類のJSブレークポイント 知っておくと便利なこと を適用する必要があります。 ブラックボックス化 ここで、悪夢を回避するために
この例では、ボタンをクリックしたときに何が起こるかを正確に知りたいのです。
-
Dev Tools ->Sourcesタブを開き、右側にある
Event Listener Breakpoints
: -
拡大する
Mouse
を選択しclick
- これで、要素をクリックすると(実行は一時停止するはず)、コードのデバッグが開始されます。すべてのコードに対して F11 (これは ステップイン ). あるいは、スタックを数ジャンプ分戻す。がある場合があります。 トン・ジャンプ
解決策4:キーワードを釣る
Dev Toolsを有効にすると、コードベース全体(全ファイルの全コード)を検索するために ⌘ + ⌥ + F または
と検索する
#envio
または、パーティを開始すると思われるタグ/クラス/IDを指定すると、予想より早くどこかにたどり着けるかもしれません。
のみが存在するわけではないことに注意してください。
img
が、たくさんの要素が重なっていて、どれがトリガーになるのかわからない場合があります。
もし、これがあなたの知識から少し外れたものであれば、次のものを見てみてください。 Chromeのデバッグに関するチュートリアル .
関連
-
[解決済み] jQueryを使って要素のIDを取得するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み] Facebookがブラウザに統合されたDeveloper Toolsを無効にする方法を教えてください。
-
[解決済み] どのDOM要素にフォーカスがあるかを調べるには?
-
[解決済み] テキストボックスのEnterキーで、JavaScriptでボタンクリックをトリガーする
-
[解決済み] Chromeデベロッパーツールで:hoverの状態を見る
-
[解決済み] ユーザーがEnterキーを押してフォームを送信できないようにする
-
[解決済み] Chromeデベロッパーツールの位置を変更する方法
-
[解決済み] ChromeのデベロッパーツールでJavaScriptを無効にする方法を教えてください。
-
[解決済み】Chromeデベロッパーツールで読み込まれたすべてのスクリプトを検索する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
vueの補間表現とv-textディレクティブの違いについて
-
Vueのイベント処理とイベントモディファイアの解説
-
Vueのフォームイベントのデータバインディングの説明
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み】awaitは非同期関数でのみ有効です。
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み】JavaScriptエラー(Uncaught SyntaxError: Unexpected end of input)
-
[解決済み】React-Redux: アクションはプレーンオブジェクトでなければならない。非同期アクションにはカスタムミドルウェアを使用する
-
モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory, scandir 'D:\.... \node_modules
-
[解決済み] jQueryでオブジェクトに登録されたイベントハンドラを検索する