Javascript 如何从chrome控制台窗口复制对象?
我尝试将对象复制为文本,但它仅显示[object]。在此之前,我尝试了复制推荐,但成功了,但不是现在。这是chrome的问题吗?Javascript 如何从chrome控制台窗口复制对象?,javascript,google-chrome,google-chrome-console,Javascript,Google Chrome,Google Chrome Console,我尝试将对象复制为文本,但它仅显示[object]。在此之前,我尝试了复制推荐,但成功了,但不是现在。这是chrome的问题吗? 我尝试了什么? 只需右键单击对象并从chrome控制台窗口存储为全局变量,然后下一步只需使用copy(temp6)命令并尝试粘贴到notepad++。 理想情况下,它应该使用您编写的copy命令复制对象。 我只是尝试了一下,为我工作。 您还可以尝试将该对象字符串化,然后复制它。 例如 有很多方法可以做到这一点。一种方法是执行JSON.stringify(your
我尝试了什么? 只需右键单击对象并从chrome控制台窗口存储为全局变量,然后下一步只需使用copy(temp6)命令并尝试粘贴到notepad++。
理想情况下,它应该使用您编写的
copy
命令复制对象。
我只是尝试了一下,为我工作。
您还可以尝试将该对象字符串化,然后复制它。
例如
有很多方法可以做到这一点。一种方法是执行JSON.stringify(yourObject),然后复制输出。您可以在控制台中使用如下命令: 假设我们的目标是:
var object = {x:"xyz"}
现在在控制台中使用下面的命令-
copy(JSON.stringify(object))
对象现在可用于剪贴板。您现在可以使用Ctrl+v来使用此对象。在使用
copy(JSON.stringify(count))
之前,您应该检查count
对象以避免循环引用,如果对象已经记录,请查看
- 在console中的对象上单击鼠标右键,然后单击“作为全局对象存储”
- 变量输出类似于temp1
- 在chrome控制台中复制并粘贴下面的代码,然后按enter键
(function(console){ console.save = function(data, filename){ if(!data) { console.error('Console.save: No data') return; } if(!filename) filename = 'console.json' if(typeof data === "object"){ data = JSON.stringify(data, undefined, 4) } var blob = new Blob([data], {type: 'text/json'}), e = document.createEvent('MouseEvents'), a = document.createElement('a') a.download = filename a.href = window.URL.createObjectURL(blob) a.dataset.downloadurl = ['text/json', a.download, a.href].join(':') e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null) a.dispatchEvent(e) } })(console)
if (typeof JSON.decycle !== "function") { JSON.decycle = function decycle(object, replacer) { "use strict"; var objects = new WeakMap(); // object to path mappings return (function derez(value, path) { var old_path; var nu; if (replacer !== undefined) { value = replacer(value); } if ( typeof value === "object" && value !== null && !(value instanceof Boolean) && !(value instanceof Date) && !(value instanceof Number) && !(value instanceof RegExp) && !(value instanceof String) ) { old_path = objects.get(value); if (old_path !== undefined) { return {$ref: old_path}; } objects.set(value, path); if (Array.isArray(value)) { nu = []; value.forEach(function (element, i) { nu[i] = derez(element, path + "[" + i + "]"); }); } else { nu = {}; Object.keys(value).forEach(function (name) { nu[name] = derez( value[name], path + "[" + JSON.stringify(name) + "]" ); }); } return nu; } return value; }(object, "$")); }; } if (typeof JSON.retrocycle !== "function") { JSON.retrocycle = function retrocycle($) { "use strict"; var px = /^\$(?:\[(?:\d+|"(?:[^\\"\u0000-\u001f]|\\([\\"\/bfnrt]|u[0-9a-zA-Z]{4}))*")\])*$/; (function rez(value) { if (value && typeof value === "object") { if (Array.isArray(value)) { value.forEach(function (element, i) { if (typeof element === "object" && element !== null) { var path = element.$ref; if (typeof path === "string" && px.test(path)) { value[i] = eval(path); } else { rez(element); } } }); } else { Object.keys(value).forEach(function (name) { var item = value[name]; if (typeof item === "object" && item !== null) { var path = item.$ref; if (typeof path === "string" && px.test(path)) { value[name] = eval(path); } else { rez(item); } } }); } } }($)); return $; }; }
- 然后你就可以使用这个功能来下载
(function(console){
console.save = function(data, filename){
if(!data) {
console.error('Console.save: No data')
return;
}
if(!filename) filename = 'console.json'
if(typeof data === "object"){
data = JSON.stringify(data, undefined, 4)
}
var blob = new Blob([data], {type: 'text/json'}),
e = document.createEvent('MouseEvents'),
a = document.createElement('a')
a.download = filename
a.href = window.URL.createObjectURL(blob)
a.dataset.downloadurl = ['text/json', a.download, a.href].join(':')
e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
a.dispatchEvent(e)
}
})(console)
if (typeof JSON.decycle !== "function") {
JSON.decycle = function decycle(object, replacer) {
"use strict";
var objects = new WeakMap(); // object to path mappings
return (function derez(value, path) {
var old_path;
var nu;
if (replacer !== undefined) {
value = replacer(value);
}
if (
typeof value === "object" && value !== null &&
!(value instanceof Boolean) &&
!(value instanceof Date) &&
!(value instanceof Number) &&
!(value instanceof RegExp) &&
!(value instanceof String)
) {
old_path = objects.get(value);
if (old_path !== undefined) {
return {$ref: old_path};
}
objects.set(value, path);
if (Array.isArray(value)) {
nu = [];
value.forEach(function (element, i) {
nu[i] = derez(element, path + "[" + i + "]");
});
} else {
nu = {};
Object.keys(value).forEach(function (name) {
nu[name] = derez(
value[name],
path + "[" + JSON.stringify(name) + "]"
);
});
}
return nu;
}
return value;
}(object, "$"));
};
}
if (typeof JSON.retrocycle !== "function") {
JSON.retrocycle = function retrocycle($) {
"use strict";
var px = /^\$(?:\[(?:\d+|"(?:[^\\"\u0000-\u001f]|\\([\\"\/bfnrt]|u[0-9a-zA-Z]{4}))*")\])*$/;
(function rez(value) {
if (value && typeof value === "object") {
if (Array.isArray(value)) {
value.forEach(function (element, i) {
if (typeof element === "object" && element !== null) {
var path = element.$ref;
if (typeof path === "string" && px.test(path)) {
value[i] = eval(path);
} else {
rez(element);
}
}
});
} else {
Object.keys(value).forEach(function (name) {
var item = value[name];
if (typeof item === "object" && item !== null) {
var path = item.$ref;
if (typeof path === "string" && px.test(path)) {
value[name] = eval(path);
} else {
rez(item);
}
}
});
}
}
}($));
return $;
};
}
- 最后执行下载代码
console.save(JSON.decycle(temp1))代码>它显示未捕获的类型错误:将圆形结构转换为JSON@Jay这有什么帮助?用户是否应该在每次要字符串化对象时将自定义JSON函数写入其devtool?您可以右键单击对象并将其存储为全局变量。它很可能被称为“temp1”,之后您可以使用如下代码片段:JSON.stringify(temp1)。希望这能澄清一点。它显示了“循环结构”警告,因为您的对象有循环,这使得无法序列化为JSON。例如,对象A的属性指向对象B,而对象B的属性指向对象A。它显示了未捕获的TypeError:将循环结构转换为JSON,这解释了为什么copy
一开始不起作用。有一种解释显示了未捕获的类型错误:将圆形结构转换为JSON@5tormTrooperDevTools在功能上内置了JSON,对象没有正确复制,只有[0]是正确的,其余的都不正确。这对我来说很有用,非常感谢。哦,毕竟,不使用save,您可以使用copy(JSON.decycle(temp1))将temp1保存到剪贴板上,由于缺少功能,您可以在以后对这个答案进行评论。console.save(temp1);为我工作,我觉得没有必要把它卸下来。感谢您的片段,此保存的timeLegend!:心脏:仅供参考,我也遇到了这个问题。不过,在我有限的测试中,当我试图复制一个定义了方法的对象时,问题似乎就出现了。如果我删除了该方法,那么问题就消失了。我知道这不是一个解决方案,但它可能有助于其他人了解发生了什么。