这是我第一次看到javascript,所以请原谅新的问题。
我正在尝试阅读我感兴趣的网站上特定功能的代码。我没有为网站写任何东西,所以不能真正评论一般结构。这几乎就像逆向工程。它被调用的地方(在js / main.js中)看起来像:
$(document).ready(function() {
$('#search').funcA();
据我所知,这是从文件/类或任何来自id搜索的内容,调用funcA。我的问题是:如何查看使用#search?
调用的文件答案 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;
打开控制台并开始调查。当您的代码执行到达该断点时,您将看到像这样的便利工具
右键单击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。