2

好的,所以我需要在网站上找到特定 javascript 函数的源代码。(除非没有办法按照我的要求去做,否则细节并不重要)

我可以在 html 代码 onclick="inbox.sendMessage();" 的链接中看到函数调用

我知道该函数确实有效,因为如果我使用插件 a 可以调用该页面上的函数,但是,我已经搜索了该页面中引用的每个 .js 文件,并且它们都不包含名为 sendMessage 的函数。

我要问的是,有没有办法将代码跟踪到源代码,也许是否有办法调试 html 并在触发 onclick 时中断,然后进入函数查看其源代码,但我确实这样做了不知道我该怎么做,或者是否有可能。任何帮助将不胜感激,谢谢。

4

4 回答 4

4

我想你可以这样做:

inbox.sendMessage

在网络控制台中。(不带括号的函数名)
打印出函数的源代码。

于 2012-12-24T01:44:48.790 回答
2

我通常使用 Opera,至少我是这样做的:

  1. 打开 Opera Dragonfly ( Ctrl+ Shift+ I)。
  2. 单击带有onclick处理程序的 HTML 标记。
  3. 转到右侧列中的侦听器选项卡。
  4. 查看click事件的侦听器。它向您显示文件和行号。
于 2012-12-24T01:36:35.533 回答
2

sendMessage 可以声明为:

var inbox{
  sendMesssage:function(){
  }
}

//or

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

// or

inbox.sendMessage=function(){}

// or ...

因此,寻找“sendMessage(”或“函数 sendMessage”不会找到任何东西。

在 chrome、Internet Explorer 和 Firefox(带有 firebug)中,您可以按 F12 并进入调试,在那里您可以检查已加载的脚本,因为可能已经动态加载了脚本。

于 2012-12-24T02:07:08.477 回答
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 回答