ChatGPT解决这个技术问题 Extra ChatGPT

Safari 开发者工具:如何在导航时保留控制台日志?

使用 Safari Web Inspector 读取 JavaScript 控制台输出时,日志会在导航时重置,即从页面 index.html 转到 mail.html 会清除控制台输出。在 Chrome Developer Tools 中,我可以通过右键单击控制台空间并选择 Preserve Log on Navigation 轻松保存日志。使用此选项,控制台日志输出将保持不变,直到我手动清除输出,从而简化了刷新或重定向到另一个页面的 JavaScript 调试过程。

Safari Web Inspector 中是否有类似的功能?

我不这么认为,至少我还没有发现它是这样的。
您可以覆盖console.log方法,存储收到的所有数据,在导航'a'.click时将其保存在localstorage中,然后将其重新应用于诸如document.ready之类的事件,但它相当hacky

A
AlBlue

我不知道这是什么时候添加的,但它存在于 El Capitan (Safari 9.0) 上的 Safari 中。它与 Chrome 中的工作方式相同(在控制台窗口中单击鼠标右键并选择“保持登录导航”)。

更新:根据 Daniel Compton's answer,在 Safari 11+ 中,它现在位于“控制台:页面导航时清除”的设置图标下。

更新:该设置现在回到 Safari 14+ 开发者控制台的“网络”选项卡中的“保留日志”


他们本可以隐藏更多!
此设置的位置甚至没有意义......为什么它在控制台选项卡中而不是在网络或常规设置中?无论如何,非常感谢您的回答。
正如 Daniel Compton 指出的那样,从 Safari 11 开始,情况不再如此。有关最新说明,请参阅 his answer
不幸的是,这两个选项在 Safari 7.1 中似乎都不可用 - 我想我应该升级。
D
Daniel Compton

在 Safari 11.1.2 中,他们再次将它(!)移回了“保留日志”复选框下的控制台选项卡。网络日志同样移回了网络选项卡。

https://i.stack.imgur.com/pJcQO.png

在 Safari 11 中,他们将其移至“控制台:页面导航时清除”下的“设置”面板。它还有一个姊妹设置“网络:页面导航时清除”。

https://i.stack.imgur.com/KurP3.png


这是最新的,为什么按钮无论如何都在标签中浏览。
r
rvighne

不,没有这样的功能(至少在 Safari 5.0 中)。查看一些谷歌结果,我认为这个功能在任何 Safari 版本中都不存在。


safari 5 很古老,我假设您在 windows 上使用 5
g
gabo bernal

https://i.stack.imgur.com/YAeVw.png