2

さて、ウェブサイトで特定のjavascript関数のソースコードを見つける必要があります。(私が求めていることを実行する方法がない限り、詳細は実際には重要ではありません)

関数呼び出しは、htmlコードonclick = "inbox.sendMessage();"のリンクで確認できます。

プラグインを使用するとそのページで関数を呼び出すことができるため、関数が機能することはわかっていますが、そのページで参照されているすべての.jsファイルを検索しましたが、sendMessageという関数は含まれていません。

私が求めているのは、コードをソースに戻す方法はありますか?おそらく、onclickがトリガーされたときにhtmlをデバッグして中断し、関数にステップインしてそのソースを確認する方法があった場合ですが、私はそうしますどうすればそれができるのか、それが可能かどうかさえわかりません。どんな助けでも大歓迎です、ありがとう。

4

4 に答える 4

4

私はあなたができると思います:

inbox.sendMessage

ウェブコンソールで。(括弧なしの関数名)
関数のソースコードを出力します。

于 2012-12-24T01:44:48.790 に答える
2

sendMessageは次のように宣言できます。

var inbox{
  sendMesssage:function(){
  }
}

//or

function inbox(){
  this.sendMessage=function(){
  }
}

// or

inbox.sendMessage=function(){}

// or ...

したがって、「sendMessage(」または「functionsendMessage」を検索しても何も見つかりません。

Chrome、Internet Explorer、Firefox(firebug付き)では、F12キーを押してデバッグに進むことができます。動的に読み込まれたスクリプトがあった可能性があるため、読み込まれたスクリプトを確認できます。

于 2012-12-24T02:07:08.477 に答える
2

私は通常 Opera を使用しており、少なくともこれは私がしていることです。

  1. Opera Dragonfly を開きます ( Ctrl+ Shift+ I)。
  2. onclickハンドラーを含む HTML タグをクリックします。
  3. 右側の列のリスナー タブに移動します。
  4. clickイベントのリスナーを参照してください。ファイルと行番号が表示されます。
于 2012-12-24T01:36:35.533 に答える
0
#!/usr/bin/env ruby


Dir::glob("*").each do |name| 

        lineCount = 1

        File.open(name, "r").each do |line|
            puts "\nFile name: " + name + "\nline: " + lineCount.to_s  if line =~ /inbox.sendMessage/  && name != "findfunction.rb"
            lineCount += 1
        end



end

あなたを助けるために簡単なRubyスクリプトを書きました。実行するには、まずマシンに Ruby インタープリターがあることを確認してから、関連するすべてのファイルを含むディレクトリにスクリプトを配置します。コマンド ライン ターミナルを起動し、上記のディレクトリに移動して「ruby findfunction.rb」と入力します。

「inbox.sendMessage」のすべてのインスタンス (ファイル + 行番号) が表示されます。

于 2012-12-24T02:26:45.860 に答える