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

时间:2012-04-24 20:15:44

标签: javascript jquery google-chrome object webkit

我在javascript中执行console.log语句以记录javascript对象。我想知道是否有办法,一旦完成 - 将该对象复制为javascript代码。我要做的是转换使用ajax创建的对象将xml提要解析为静态javascript对象,以便文件可以在本地运行,而无需服务器。我在chrome检查器窗口中包含了对象的屏幕截图,以便您可以看到我正在尝试做的事情。enter image description here

13 个答案:

答案 0 :(得分:840)

  1. 右键单击Chrome控制台中的对象,然后从上下文菜单中选择Store as Global Variable。它将返回temp1之类的变量名称。

  2. Chrome也有copy()方法,因此控制台中的copy(temp1)应将该对象复制到剪贴板。

  3. Copy Javascript Object in Chrome DevTools

    关于递归对象的注意事项:如果您尝试复制递归对象,则会得到[object Object]。这是可以预期的。

答案 1 :(得分:46)

试试JSON.stringify()。复制结果字符串。

答案 2 :(得分:32)

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

例如: - 复制&将以下代码粘贴到控制台中,然后按ENTER键。现在,尝试粘贴(用于Windows的CTRL + V或用于Mac的CMD + V)以及其他地方,您将获得 {" name":" Daniel",&# 34;年龄" 25}

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

copy(JSON.stringify(profile));

答案 3 :(得分:24)

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

enter image description here

答案 4 :(得分:11)

请按照以下步骤操作:

  1. 使用您的代码中的console.log输出对象,如:console.log(myObject)
  2. 右键单击该对象,然后单击“存储为全局对象”。 Chrome会在此时打印变量的名称。我们假设它被称为“temp1”。
  3. 在控制台中,键入:JSON.stringify(temp1)
  4. 此时,您将看到整个JSON对象为可以复制/粘贴的字符串。
  5. 此时您可以使用http://www.jsoneditoronline.org/之类的在线工具来美化字符串。

答案 5 :(得分:8)

如果您已通过请求发送了该对象,则可以将其从Chrome中复制 - >网络选项卡。

请求有效负载 - >查看来源

enter image description here

enter image description here

答案 6 :(得分:2)

更新 - Chrome 89

右键单击 -> 复制对象

来源:(https://developers.google.com/web/updates/2021/01/devtools?utm_source=devtools)

enter image description here

<块引用>

也来自调试器

enter image description here

答案 7 :(得分:1)

您可以将对象作为字符串进行控制台

var objToString = JSON.stringify(obj)
console.log(objToString );

然后在像记事本++这样的编辑器中粘贴输出,然后点击插件格式

JSFormat

答案 8 :(得分:0)

使用&#34;存储为全局变量&#34;工作,但它只获取对象的最终实例,而不是对象被记录的那一刻(因为您可能希望在对象发生时将更改与对象进行比较)。为了使对象处于被修改的确切时间点,我使用了这个......

function logObject(object) {
    console.info(JSON.stringify(object).replace(/,/g, ",\n"));
}

这样称呼......

logObject(puzzle);

如果您的数据恰好包含逗号,则可能需要删除.replace(/./ g,&#34;,\ n&#34;)正则表达式。

答案 9 :(得分:0)

因此,。我有这个问题,。除了我得到[对象对象]

我确定你可以通过递归来做到这一点,但这对我有用:

以下是我在控制台中所做的事情:

var object_that_is_not_shallow = $("all_obects_with_this_class_name");
var str = '';
object_that_is_not_shallow.map(function(_,e){
    str += $(e).html();
});
copy(str);

然后粘贴到您的编辑器中。

答案 10 :(得分:0)

这应该通过省略递归WindowNode对象来帮助深化对象。

function stringifyObject(e) {
  const obj = {};
  for (let k in e) {
    obj[k] = e[k];
  }

  return JSON.stringify(obj, (k, v) => {
    if (v instanceof Node) return 'Node';
    if (v instanceof Window) return 'Window';
    return v;
  }, ' ');
}

答案 11 :(得分:0)

Right click on data which you want to store

  • 首先,右键单击要存储的数据->选择“存储为全局变量” 新的temp变量如下所示:(temp3变量): New temp variable appear in console
  • 第二个使用命令copy(temp_variable_name)如下图所示: enter image description here 之后,您可以将数据粘贴到所需的任何位置。 希望有用/

答案 12 :(得分:0)

将此添加到控制台并执行

copy(JSON.stringify(foo));

这会将您的JSON复制到剪贴板