如何用本地脚本替换某些javascript引用的内容进行调试?

Posted

技术标签:

【中文标题】如何用本地脚本替换某些javascript引用的内容进行调试?【英文标题】:How to substitute a content of certain javascript reference with local script for debugging? 【发布时间】:2011-03-12 05:39:01 【问题描述】:

我需要调试页面加载的 jasvascript。加载的页面不在本地放置。

加载的 js 被打包。我想用未打包的版本替换它。

有什么技巧或浏览器选项可以做到吗?

【问题讨论】:

【参考方案1】:

Firebug 是一个非常好的 Firefox 扩展,它可以让您操作 DOM,并且您可以看到发生的变化。这将允许您在页面中插入<script> 标记。

只需通过 Firebug 编辑<head> html 片段并将<script src="http://site.com/unpacked.js"></script> 插入页面中的某处。

【讨论】:

我可以插入脚本,但不能用一个替换另一个。 那么,你应该在本地保存 HTML 并更改 <script> 标签。 )) 我不能,因为页面包含对同一域的 ajax 请求。所以浏览器不允许跨域请求。我们可以考虑替换为删除+插入。但是我如何在脚本执行之前在页面加载期间删除某些脚本..【参考方案2】:

看起来 Fiddler 的 AutoResponder tab 会为您执行此操作。

您说您想用“未打包”版本替换 JS——如果您只想插入换行符以便在调试器中单步执行,Venkman 调试器有一个“Pretty Print”按钮那个。

【讨论】:

提琴手的伟大功能。谢谢你。我会试试文克曼,很有趣。【参考方案3】:

听起来您是在应用程序已经部署在某个地方之后才要求的,所以这可能没有那么有用。

如果您的应用程序已经通过常规构建脚本或流程进行调试或至少发布,那么您可以在那里进行。您可以将 javascript 文件保留为未缩小/优化的脚本,并且在构建调试时它只是将它们复制过来,但对于发布它在复制它们之前首先通过您的缩小器/优化器运行它们。

我知道 jQuery 使用 Google Compiler 来打包框架,但是还有其他工具可以缩小代码。此外,当您已经将其作为构建过程的一部分时,它还使您有机会在 Javascript 上运行任何类型的质量检查工具(例如 JSLint)。

除此之外,上面提到的 AutoResponder 想法听起来很有希望。

【讨论】:

谢谢。我询问了已经部署的应用程序(甚至是第三方应用程序)。 +1 质量检查工具,不知道。【参考方案4】:

您可以使用Charles Web Debugging Proxy 将请求的JS 文件映射到local unpacked JS 文件(或任何其他位置)。这需要花钱,但您可以试用 30 分钟。

【讨论】:

以上是关于如何用本地脚本替换某些javascript引用的内容进行调试?的主要内容,如果未能解决你的问题,请参考以下文章

如何用 <br/> 替换某些回车换行符后跟破折号?

如何用javascript操作本地文件

如何用接口方法的方法引用替换lambda? [关闭]

如何用 Javascript 替换和追加

如何用另一个数组值替换javascript中的数组值?

如何用 Greasemonkey 的用户脚本替换 JSON 字符串中的文本