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

Chrome debug does NOT reload page source

本文关键字:加载 网页 源代码 新加载 调试 Chrome      更新时间:2023-09-26
这个问题

已经存在了很长时间,我从来没有找到解决方案,虽然这里的其他问题很相似,但它们并不完全是我所看到的。

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

在我的网络应用程序(Struts2和Tomcat)中,我有带有标题栏的主页和左侧菜单。中心内容是一个加载所有相应 JSP 的 iframe。我对大部分导航使用一个"操作",不同的结果显示不同的页面。问题是chrome调试器"源"窗格中的NAME在我导航时不会更改。实际页面会发生变化,但由于名称不会更改,因此 Chrome 不会将新源代码引入调试器窗口。所以发生的情况是,如果我在正在加载的页面中的第 200 行有"调试器",它会停止并显示"源" - 但它是第 200 行的旧源,而不是正在运行的实际源!如果我右键单击 SOURCES 窗格中的旧源文件,然后"在网络面板中显示",则此处会显示真正的源,因为它确实是从我的服务器加载的,但调试源不会更改。

问:如何在 Chrome 中解决此错误并强制在调试器显示中重新加载源代码?

更新:不,这与其他问题不同。大卫·法兰德的回答似乎符合我所说的。实际的 javascript 源代码正在刷新,并在"资源"和"网络"窗格中正确显示。但在完成实际调试的"源"窗格中,不会刷新新源。而且很难调试你看不到的代码!

要在加载过程完成后附加 JavaScript 代码,Chrome 扩展程序中采用了这种技术,并且适合调试。

let script = document.createElement('script');
script.innerHTML = 'your javascript code ';
document.head.appendChild(script);

也许尝试使用老式的方法来添加 URL 查询参数,例如以毫秒为单位的当前时间?您的应用会忽略某些内容,但 Chrome 会将其视为新页面?例如 https://example.com?time=1594125425508