2

我尝试了所有我反刍的方法来解决这个问题,但我无法在网页中跟踪一段 javascript

因此,即使我的问题与这种情况无关,也只是为了给您一些背景信息。它取决于更大的频谱。

无论如何,我在 SugarCRM 上开发并尝试编辑日历模块中插槽的默认 onclick 行为(您不需要理解这一点来帮助我,所以请继续阅读)。当我单击一个插槽时,会打开一个模式对话框窗口,让我记录会议或通话。

所以我追查了这背后的javascript。我使用了firebug和chrome,它们都给出了给定网页上正在使用的所有JS文件的列表,例如我搜索“SUGAR.collection”,firebug告诉我它位于一个名为“sugar_field_grp.js? v=FVh1Z-v5nA6bYov7-aFFqQ”我可以看到这段代码位于sugar_field_grp.js中,但我试图更改的代码位于“index.php?module=Calendar&action=index&parentTab=Activities”中,firebug实际上告诉我这是具有我要更改的 javascript 的文件。

我还可以右键单击查看页面源代码,我可以在脚本标签中看到那段代码。所以考虑到这段代码不驻留在 JS 文件中,我无法更改它,它是在运行时生成的(我认为)但必须有一些来源,必须有一个文件告诉 SugarCRM 生成此代码

tl;博士如何追踪驻留在 pagesource 上的一段 javascript 代码,并且没有由 firebug 或 chrome 指定的 JS 文件保存 index.php(该文件也没有该 javascript)

我知道这是一个很长的帖子感谢阅读

4

2 回答 2

4

了解如何在计算机磁盘上的文件中搜索字符串。

在 Linux、MacOS 和大多数 unixen 上,这方面的首选工具是grep. 这适用于您使用的任何编程语言。对于您的情况,只需cd进入源代码目录并执行以下操作:

grep -r SUGAR.collection .

如果您使用 git 作为源代码控制工具,那么git grep速度会快得多。

在 Windows 上,您可以使用各种 GUI 工具来搜索文件中的文本。只是谷歌:grep for windows

如果您使用的是 IDE,那么只有 IDE 的文件查找功能。

于 2013-11-07T08:40:17.190 回答
0

要使用 Chrome / Webkit 跟踪特定代码,请执行以下两个步骤:

客户:

1.搜索所有静态文本源

  • CTRL使用+ SHIFT+打开开发面板I
  • 点击CTRL++SHIFT弹出F全局搜索对话框
  • 在它旁边,您可以将 JS 代码的漂亮打印设置为 on:按钮{ }
  • 使用正则表达式输入您的搜索词或词条
  • 可选:确定您是否需要不区分大小写的搜索,该搜索具有更大的搜索空间并花费更长的时间示例:

    在此处输入图像描述

2.搜索动态用户DOM内容

  • 转到选项卡“元素”点击CTRL+ F
  • 输入您的搜索词(这也将在父 DOM 中搜索 iframe、svg 等)

3. 推荐:

  • 交叉引用第 1 步和第 2 步的结果。
  • 如果给定的字符串同时存在于 DOM 和静态源中,那么您可以假设内容不是在客户端以编程方式创建的。

服务器:

  • 许多项目在内容交付之前执行媒体捆绑步骤。他们将网络资源打包到主文件(例如 index.php)中以节省 HTTP 往返。
    使用sourcemaps / 和或在整个代码库中搜索显着的静态字符串或静态字符串附近的显着关键字来定位原始源文件。

    搜索文件:

    在本地,我通常使用 JetBrain 的 IDE(IDEA、PHPStorm、...)和 Sublime 的快速索引和启发式搜索。grep-command 工具在性能上绝对不能在这里竞争。在 Windows 上,我还使用 Totalcommander 及其归档/正则表达式查找功能。

    在服务器上快速查找代码时,您可能会使用以下内容:

    grep -r -C10 --color=always 'keyword1|keyword2' htdocs/ | less -R

    它还将为您提供行上下文。两个警告:您可能希望首先过滤掉二进制文件,并且范围之外的符号链接将被忽略。

于 2013-11-07T08:25:55.813 回答