在 Chrome 调试器中编辑

IT技术 javascript google-chrome debugging
2021-01-24 20:20:44

如何在 Chrome 调试器中“动态”编辑 JavaScript 代码?它不适合我,所以我无权访问源文件。我想编辑代码并查看它们对页面的影响,在这种情况下,阻止动画多次排队。

6个回答

我今天在玩别人的网站时遇到了这个问题。

我意识到我可以在调试器中的断点附加到我想要动态编辑的代码行之前由于断点在重新加载页面后仍然存在,因此我能够在断点处暂停时编辑我想要的更改,然后继续让页面加载。

因此,作为快速解决方法,如果它适用于您的情况:

  1. 在脚本中较早的点添加断点
  2. 重新加载页面
  3. 将您的更改编辑到代码中
  4. CTRL+ s(保存更改)
  5. 取消暂停调试器
对我来说至关重要的是知道应该保存更改(第 4 步)。谢谢!
2021-03-18 20:20:44
对我来说,html 文件中的javascript 上不起作用此外,如果您已将文件夹添加到工作区,请选择本地js 文件,右键单击并将该文件映射到网络 dito。
2021-03-20 20:20:44
谢谢!我发现这在需要在页面加载附近调用的自执行匿名函数中进行更改时有效。
2021-03-24 20:20:44
那么有没有办法修改html文件中的脚本?
2021-04-03 20:20:44
啊,因为我之前试过这个,但它没有用,虽然天哪,我怎么会错过它。但是,是的,对我不起作用。
2021-04-13 20:20:44

您可以使用 Chrome 开发者工具中“脚本”选项卡下的内置 JavaScript 调试器(在更高版本中为“源”选项卡),但您对代码应用的更改仅在执行通过它们时表达。这意味着对页面加载后未运行的代码所做的更改不会产生影响。与例如更改驻留在鼠标悬停处理程序中的代码不同,您可以即时测试这些代码

有一段来自 Google I/O 2010 活动的视频介绍了 Chrome 开发者工具的其他功能。

Chrome 调试器不允许对 javascript 进行本地修改。错误的。
2021-03-15 20:20:44
在更高版本的 Chrome 中,标签图标已经消失,“脚本”标签被重命名为“来源”——因此可能不明显找到 javascript 调试器。这里有更多信息stackoverflow.com/questions/12113769/...
2021-03-27 20:20:44
@oMiKeY 什么是假的?Chrome 确实允许在调试器中修改脚本。
2021-03-31 20:20:44
没有这样的方法。我也无法修改 Sources 选项卡下的代码。
2021-04-11 20:20:44
@oMiKeY 如果脚本未美化,您可以修改
2021-04-13 20:20:44

您可以使用 Chrome 中的“覆盖”在页面加载之间保持 javascript 更改,即使您没有托管原始源。

  1. 在 Developer Tools > Sources > Overrides 下创建一个文件夹
  2. Chrome 会要求对该文件夹的权限,点击允许
  3. 在 Sources>Page 中编辑文件,然后保存 (ctrl-s)。紫色圆点表示文件保存在本地。

Chrome 开发者工具中的 Overrides 子标签

这看起来很有希望,但对我不起作用。我想知道这是否仅适用于最简单的 JS,而不适用于 Vue 或任何用 Webpack 编译的东西。
2021-03-22 20:20:44
天哪,这是唯一对我有用的。我尝试过直接自行编辑,将文件夹添加到文件系统、代码段,但我的更改从未得到反映。将文件夹添加到覆盖后,它会重新加载并反映更改!谢谢谢谢
2021-04-05 20:20:44
这确实适用于 Webpack。使其工作的最简单方法是进入 HTML 检查器,找到<script src="js file"> 右键单击​​ >“在源面板中显示”。然后从那里右键单击 JS 文件中的任意位置>“保存覆盖”。
2021-04-12 20:20:44

这就是你要找的:

1.- 导航到“源”选项卡并打开 javascript 文件

2.- 编辑文件,右键单击它,将出现一个菜单:单击保存并将其保存在本地。

为了查看差异或恢复您的更改,请右键单击并从菜单中选择本地修改...选项。如果展开显示的时间戳,您将看到相对于原始文件的更改差异。

更详细的信息在这里:http : //www.sitepoint.com/edit-source-files-in-chrome/

很简单,转到“脚本”选项卡。并选择您想要的源文件并双击任意行进行编辑。

这正是我所做的,但正如人们所期望的那样,更改并未反映在页面上。我需要将 $(selector).fadeIn() ... 更改为 $(selector).stop(true,true).fadeIn() ... 你知道吗?我希望能够在页面上看到这种情况。
2021-03-24 20:20:44
2021-03-24 20:20:44
如果您可以在 file:// URL 的情况下将更改保存到磁盘,那就太棒了
2021-03-28 20:20:44
“另存为...”只会将文件保存到您的计算机。它不会在页面重新加载后应用更改。如果您想将更改应用于 JS 文件以进行调试,您可以使用 Opera。
2021-04-01 20:20:44
哦该死,你说得对。现在我想知道为什么 Chrome 允许我们在没有任何效果的情况下编辑任何内容。
2021-04-08 20:20:44