Javascript:查找函数的代码

时间:2016-04-26 23:34:23

标签: javascript html

这是我第一次看到javascript,所以请原谅新的问题。

我正在尝试阅读我感兴趣的网站上特定功能的代码。我没有为网站写任何东西,所以不能真正评论一般结构。这几乎就像逆向工程。它被调用的地方(在js / main.js中)看起来像:

$(document).ready(function() {
  $('#search').funcA();

据我所知,这是从文件/类或任何来自id搜索的内容,调用funcA。我的问题是:如何查看使用#search?

调用的文件

5 个答案:

答案 0 :(得分:0)

funcA几乎可以肯定是一个jQuery插件(或jQuery本身的一部分)。我会在你的情况下尝试的第一件事是搜索" jQuery funcA"在Google上。

无论它是否真的是jQuery的一部分,你可以通过运行来看到该函数的源代码:

$('#search').funcA

在REPL中,例如您的浏览器控制台,或者:

console.log( $('#search').funcA );

只要该函数的toString函数没有被覆盖,并且它不是对本机函数的引用。

答案 1 :(得分:0)

funcA似乎被定义为jQuery方法;尝试

console.log($.fn.funcA)

答案 2 :(得分:0)

在显示包含该代码的页面的同一浏览器窗口(我使用chrome)中打开javascript控制台。然后执行以下行:

> $('#search').funcA

您应该看到funcA的正文。我做$(“#myownid”)时的随机示例输出.show:

  

function funcA(a,b,c){var d,e; if(a || a === 0)return   this.animate(CU( “显示”,3),A,B,C);对于(VAR   G = 0,H = this.length;克   ...

如果您设法查看该功能的正文,您应该能够推断出可能的来源(或在此处发布这些来源,我们应该能够进一步指出您)

答案 3 :(得分:0)

这里的console.log建议很好地使用了Function.prototype.toString (在某些浏览器中使用了某些控制台魔法),但我使用debugger代替。对于像这样的东西,Chrome有很好的调试工具,debugger statement可以让你轻松上手。

 var test = $('#search').funcA;
 debugger;

打开控制台并开始调查。当您的代码执行到达该断点时,您将看到像这样的便利工具

enter image description here

右键单击test还可以选择"显示函数定义" ,它将显示函数实际定义为源代码的位置。

如果您想进一步调查,可以随时设置类似的断点right from the Chrome dev console

答案 4 :(得分:0)

简短版本:打开控制台并运行$(“#search”)它将返回一个jquery对象,其中包含一个id为search的dom节点。

长版:

$( “东西”) 是jquery(一个java脚本库),用于通过css选择器返回jquery对象的select元素。 https://learn.jquery.com/using-jquery-core/selecting-elements/

$(document).ready(function(){ 是jquery为我的文档(基本上是页面)准备好让我捣乱运行这个匿名函数。 https://learn.jquery.com/using-jquery-core/document-ready/

$( '#搜索')FuncA的行(); 选择一组元素,在本例中为id为“search”的单个元素,然后使用元素作为范围在每个元素上运行funcA。因此它会在ID为“search”的元素上运行funcA,搜索节点是特殊范围变量的值(范围通过关键字“this”引用,它可能会变得相当复杂)。

所以从本质上讲你所看到的是: 当我的文档准备就绪时,找到搜索元素并在其上运行我的函数funcA。