Chrome调试不会重新加载页面源代码

16

长期以来,我一直没有找到解决办法,尽管这里的其他问题相似,但并非完全符合我的情况。

问题在于用于步进代码的源代码在每次页面加载时不会刷新。是的,我已经禁用了缓存 - 但问题不在于浏览器缓存,而是DEBUGGER SOURCE缓存。

在我的Web应用程序(Struts2和Tomcat)中,我有带有标题栏和左菜单的主页面。中心内容是一个iframe,它加载所有适当的JSP。我使用一个“操作”进行大部分导航,不同的结果显示不同的页面。问题在于Chrome调试器源面板中的名称不随导航而改变。实际页面确实发生了变化,但由于名称没有改变,Chrome没有将新的源代码带入调试器窗口。因此,如果我在正在加载的页面上的第200行中有'debugger;',它就会停止,并显示“source”,但它是旧的源代码,在第200行,而不是实际运行的源代码!如果我在SOURCES面板中右键单击旧的源文件,并“在网络面板中显示”,则显示实际加载自服务器的真实源代码,但调试源代码不会更改。

问题:如何避免Chrome中的此错误并强制调试器显示重新加载源代码?

更新: 不,这与其他问题不同。David Fahlander的答案似乎符合我的说法。实际的JavaScript源代码正在刷新,并在RESOURCES和NETWORK面板中正确显示。但在执行实际调试的SOURCE面板中,新的源代码未刷新。很难调试你看不到的代码!


1
可能是如何强制Chrome脚本调试器重新加载JavaScript?的重复问题。 - Andrea Ligios
2
谢谢,但不是重复问题,并且那些答案也没有帮助。我已经更新了上面的内容。 - user3708842
1
我已经撤回了关闭投票。 - Andrea Ligios
1
我有同样的问题,脚本已经被加载并且是最新的,但在源选项卡中它们没有显示出来。当尝试使用Chrome调试器时,这特别令人恼火。 - Flavio
1
这里存在保存问题。最新版本也没有帮助。请注意,我已经在网络面板中设置了禁用缓存。但源面板仍与以前的版本相同。真的很烦人。 - tommy.qichang
显示剩余3条评论
2个回答

1
在加载过程完成后,为了追加JavaScript代码,Chrome扩展使用这种技术,并且方便进行调试。
let script = document.createElement('script');
script.innerHTML = 'your javascript code ';

document.head.appendChild(script);

0

也许可以尝试使用传统的方法,添加一个URL查询参数(例如当前时间的毫秒数),这是你的应用程序会忽略的,但是Chrome会将其视为新页面。例如:https://example.com?time=1594125425508


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接