我想跟踪单击链接时发生的网络活动。问题是该链接打开了一个新选项卡,显然开发工具适用于它打开的每个选项卡。 “在导航时保留日志”没有帮助。
我目前的解决方案是转移到没有这个问题的 FireFox 和 HttpFox。我想知道 Chrome 的所有开发人员是如何管理的,这听起来很基本(当然我已经搜索过答案,没有发现任何有用的东西)。
查看 chrome://net-internals/#events
(或最新版 Chrome 中的 chrome://net-export
)详细了解浏览器中发生的所有网络事件。
根据您的具体问题,其他可能的解决方案可能是在“网络”选项卡上启用“保留日志”:
https://i.stack.imgur.com/rabex.png
并通过在控制台中执行以下代码强制所有链接在同一选项卡中打开:
[].forEach.call(document.querySelectorAll('a'),
function(link){
if(link.attributes.target) {
link.attributes.target.value = '_self';
}
});
window.open = function(url) {
location.href = url;
};
phsource 评论中提到的 feature request 已实现。
在最近的版本中(从 Chrome 50 开始),您可以转到“开发者工具设置”菜单(打开“开发者工具”,然后使用 3 点菜单或按 F1)并选中“自动打开 DevTools for popups”框。
Auto-open DevTools for popups
。确保您已检查 Preserve log
(请参阅 stackoverflow.com/a/16344250/9972417)
在 Chrome 61.0.3163.100 中,您现在可以使用以下选项。通过转到 Chrome 开发工具设置来访问它。它在底部。
https://i.stack.imgur.com/qCfsF.png
在 Chrome 85 中(在 Chrome 100 中仍然有效)“Auto-open DevTools for popups”隐藏在一个新位置
DevTools (F12)/Settings (F1, Ctrl + ?)/Preferences/Global(在列表末尾)
https://i.stack.imgur.com/NdKhX.png
现在它保留了“保留日志”设置。
你可以这样做:
在想要的链接上设置 target="any_window_name"。单击该链接一次,以在新选项卡中打开它。在打开的选项卡中,打开开发人员工具。返回原始页面并再次点击该链接。结果将加载到已经准备好的窗口中,并打开开发者工具。您可以在开发工具中激活“保留日志”选项(参见 Konrad Dzwinel 的优秀答案)以捕获该链接上的任何重定向流量。注意:大多数人都熟悉链接目标 ∈ { _self,_blank,_parent,_top }。但实际上可以给出任何名称,这将打开一个具有该名称的新窗口,并且随后单击链接、表单或具有相同目标值的 window.open 将在同一窗口中打开。进一步阅读 - mdn : window.open , mdn : 标签
添加/更新指向 target="_self" 的链接
在“网络”选项卡中选中“导航时保留日志”。
单击链接并记录您的请求
如果打开的链接没有重定向,您可以在新选项卡中打开网络选项卡,然后刷新选项卡。
免责声明:由 HttpWatch 开发者发布 *
Windows 上的 HttpWatch 可以通过在工具->选项->记录中启用自动记录来记录打开新 Chrome 标签页或窗口时产生的网络流量。在新窗口中单击 HttpWatch 图标以查看网络跟踪。
free version 将为每个请求提供基本信息,例如 URL、状态代码和经过的时间。
* 免责声明:由 HttpWatch 开发者发布 *
type:URL_REQUEST
,但它似乎不包含与“网络”选项卡相同的信息。例如,它似乎删除了请求和响应的 cookie 数据。document.querySelectorAll('a,form')
也会影响表单。