4

ページの読み込み時に多くの jquery が実行されており、要素の 1 つが消えています (style=display:none; になっています)。jquery hide() 関数が誤ってこの要素に適用されていると推測していますが、どのステートメントが原因であるかはわかりません。

基本的にhtml要素のブレークポイント/リスナーとして機能するjavascript、firebugなどの関数またはツールはありますか(おそらくブラウザで実行できるもの)? ページの読み込み時に、どの機能がその要素に影響を与えているかを確認することは素晴らしいことです。

4

2 に答える 2

4

ハッ!私はちょうど私が欲しかった答えを見つけました。Firebug には、HTML タブに "break on mutate" 機能があり、javascript ファイルのどの行が html 要素を変更しているかを表示します。それは Firebug 1.5 にあり、今日リリースされた新しい 1.5.2 アップデートがアイコンを移動したので、私はそれに気付き、純粋に運でそれを見つけました!

http://www.softwareishard.com/blog/firebug/firebug-15-break-on-next/

あなたの試みに感謝します!

于 2010-02-25T18:26:02.043 に答える
1

getters/settersを使用して要素にアクセスしている場所を見つけることができます。ただし、setterメソッドはchromeでは機能しないようです...最新バージョンのminefield [firefox beta]で機能しますが、...テストできると思います=)

myElement.style.__defineSetter__("backgroundColor", function(val)
{
  var cur = arguments.callee;
  var callLog = "";
  while(cur != null)
  {
   callLog = cur.caller + "\n" + callLog;
   //alert(cur.caller);
   cur = cur.caller;
  }
  alert(callLog);
 }
);

ああ、でも実際に変数を「設定」することはできません。そのためには、ダミー変数を定義して設定します。次に、ゲッターを[with __defineGetter__]で定義すると、その値が返されます。

于 2010-02-24T23:28:36.770 に答える