Javascript / Chrome - 如何从 webkit 检查器复制对象作为代码

IT技术 javascript google-chrome object webkit
2021-03-09 10:30:49

我正在我的 javascript 中执行 console.log 语句以记录一个 javascript 对象。我想知道是否有办法,一旦完成 - 将该对象复制为 javascript 代码。我想要做的是将使用 ajax 创建的对象转换为静态 javascript 对象,以便文件可以在没有服务器的情况下在本地运行。我在 chrome 检查器窗口中包含了对象的屏幕截图,因此您可以看到我正在尝试做什么。在此处输入图片说明

6个回答
  1. 右键单击 Chrome 控制台中的对象,然后Store as Global Variable从上下文菜单中进行选择。它将返回类似于temp1变量名的内容。

  2. Chrome 也有一个copy()方法,所以copy(temp1)在控制台中应该将该对象复制到剪贴板。

在 Chrome DevTools 中复制 Javascript 对象

关于递归对象的注意事项:如果您尝试复制递归对象,您将获得[object Object]. 出路是尝试copy(JSON.stringify(temp1)),该对象将作为有效的 JSON 完全复制到您的剪贴板,因此您可以使用许多资源之一根据需要对其进行格式化。

如果您收到Uncaught TypeError: Converting circular structure to JSON消息,您可以使用JSON.stringify的第二个参数(它是一个过滤器函数)来过滤掉有问题的循环属性。有关更多详细信息,请参阅此堆栈溢出答案

这只是给[object Object]我。
2021-04-30 10:30:49
它只有在你有一个浅层 JS 对象时才有效,如果你有递归深层对象,那么你会得到 [Object Object] - 这是预期的
2021-05-01 10:30:49
@PardeepJain - 这是 copy() 方法所期望的,因为没有什么可返回的。数据应该在您的剪贴板中。
2021-05-10 10:30:49
在 chrome 版本 49.0.2623.87(64 位)中返回未定义?为什么>?
2021-05-11 10:30:49
@Ullallulloo 尝试像这样使用 JSON.stringify 注销:stackoverflow.com/a/4293047/622287
2021-05-21 10:30:49

在 Chrome 89 或更高版本中,您只需右键单击控制台中的对象并选择Copy Object( ref )。这也适用于 Chrome 开发人员工具中的其他一些地方,例如在调试时或在网络请求的响应选项卡内。

其他选项是按copy原样使用命令:

var x = { a: 1, b: 2 };
copy(x);

原答案

我得到 TypeError: Converting circular structure to JSON
2021-05-02 10:30:49
除非您修改记录它的代码,否则我看不出它是如何工作的。
2021-05-15 10:30:49

您可以使用copy(JSON.stringify(Object_Name));将对象复制到剪贴板。在控制台中。

例如:- 将以下代码复制并粘贴到您的控制台中,然后按 ENTER。现在,尝试将其粘贴(Windows 的 CTRL+V 或 Mac 的 CMD+V)它在其他地方,您将获得 {"name":"Daniel","age":25}

var profile = {
    name: "Daniel",
    age: 25
};

copy(JSON.stringify(profile));
不适用于 DOM 节点、窗口或任何其他圆形对象
2021-05-13 10:30:49
迄今为止,对于一个大而简单的对象来说,这是最简单的解决方案。
2021-05-16 10:30:49
最简单的解决方案
2021-05-18 10:30:49

您现在可以通过右键单击对象并选择“存储为全局变量”在 Chrome 中完成此操作:http : //www.youtube.com/watch?v=qALFiTlVWdg

在此处输入图片说明

从版本 39.0.2171.95 开始,使用 Chrome 检查 Android 设备时,“存储为全局变量”选项不可用。
2021-04-29 10:30:49
@David Calhoun,我投票支持你的答案。看起来您的答案是在 2014 年 6 月 12 日发布的,而被接受的答案是 2014 年 8 月 5 日,主要是您所拥有的。我不得不承认他提到了 temp1,而您的答案仅在您的视频中显示,所以也许这就是其他答案被接受的原因。最好的祝愿。
2021-05-19 10:30:49

请按照以下步骤操作:

  1. 从代码中使用 console.log 输出对象,如下所示:console.log(myObject)
  2. 右键单击对象,然后单击“存储为全局对象”。Chrome 会在此时打印变量的名称。让我们假设它被称为“temp1”。
  3. 在控制台中,键入:JSON.stringify(temp1)
  4. 此时,您将看到整个 JSON 对象作为可以复制/粘贴的字符串。
  5. 此时,您可以使用诸如http://www.jsoneditoronline.org/ 之类的在线工具来美化您的字符串。
@JoeTidee 我遇到了同样的问题,但我设置了一个debugger语句,然后在断点处直接从控制台检索了我的 var。
2021-04-23 10:30:49
如果对象很大,使用 JSON.stringify(temp1) 的步骤可能会影响长时间的执行。
2021-04-28 10:30:49