如何防止Chrome在开发者控制台中截断字符串?


47
> ary = new Array('test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test. test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test. test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test. test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test. test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test.');
> JSON.stringify(ary)
"["test msg kinda long but gets the point across and such and it shows ellipsises... (length: 116)"

我确实想要完整的对象,但Chrome希望将结果修剪为大约80个字符。我在控制台设置中看不到任何可以更改此设置的内容。

Answers:


43

我最近发现Chrome开发工具具有copy可复制到剪贴板的功能-不会被截断!还可以方便地将对象序列化为JSON,将DOM元素序列化为HTML,直接到剪贴板。

copy(someLongString); // no truncation!
copy({ foo : true }); // JSON
copy(someDOMElement); // HTML

由于我试图将长字符串复制到剪贴板以在其他地方进行分析,因此这完全可以满足我的需求


3
光滑 不过,我并没有真正回答问题,应该发表评论
jcollum 2014年

2
+1这非常有用。当然,从技术上讲它并不能回答问题,但可以解决导致问题提出的问题-如何从控制台获取完整的,未截断的文本。只需将其粘贴到文本编辑器中,即可对您进行排序。
theyetiman

我进入Chrome浏览器:未捕获的ReferenceError:未定义副本
2016年

3
@arod,它仅在控制台中可用,而在全球范围内不可用
WickyNilliams

2
这也适用于Firefox。
比约恩

16

console.dir(longstringhere) 作品。

copy也不对我有用,这是说undefined


1
同样在这里。“ console.copy”无效,但“ console.dir”有效。你救了我的日子。
贝蒂

2
copy函数不会输出任何内容(因此undefined是预期的),而是将参数复制到您的系统缓冲区中,只需将其(ctrl-v)粘贴到任何编辑器中即可
nazikus 16/08/12

1
不工作....
贝纳Shasho

2
您必须从控制台复制,例如,在其中放置一个断点,然后打开控制台,键入copy(yourVariable)。另外,它copy不是console.copy
WickyNilliams

1
如果未指定,则JS中的每个函数都返回undefined。因此它实际上有效。
atilkan

5

Chrome版本37.0.2062.103中仍然存在此行为。

您可以在调试时通过使用以下方法解决此问题:document.write('My Really Long Debug Text');


在Windows 7上37.0.2062.120 m:无椭圆形。
jcollum 2014年

不再工作了..
Totty.js


2

如下图所示,将Chrome升级到不再执行此操作的版本32:

在此处输入图片说明


2
chrome canary v36 + ...仍然可以做到。...但现在不显示长度。例如long string...ends here
gcb

您使用的Chrome版本尚未发布。在Ubuntu的v33中没有发生这种情况:imgur.com/RPCgR6f-您是否对我投了反对票,因为即使您使用的是预发行版本,我的解决方案也无法解决您的问题?
jcollum

1
“解决问题。无法运行旧版本的浏览器” ---这不是旧版本的浏览器!我是最新的,在Ubuntu 33上是v33。我的Windows框是最新的,它是v34。我不知道您从哪里获得v36。“它不会在v33上发生”-事实并非如此,截图(来自v33)证明了这一点。
jcollum 2014年

1
关键外卖是,此错误/行为后33或34插回
GCB

1
真好。您应该提交错误报告。由于当前发布的Chrome版本没有此功能,因此您不应因为说更新到最新发布的Chrome版本即可解决问题而对我感到不满。这对于Win7上的V34和Ubuntu上的V33都是适用的。
jcollum 2014年

2

在Chrome 58(可能更早)中,您可以Store as Global Variable在控制台中使用嵌套在任何级别的任何值的上下文菜单上的菜单选项。它将选定的值分配给具有唯一名称的变量,该名称将立即记录到控制台。

刚刚尝试了400KB的价值!

资料来源:https : //stackoverflow.com/a/41726364/250838


2

在consoleor.js中,以编程方式限制了呈现到控制台的字符串的长度。默认设置为150个字符。您没有可以应用的CSS,因为它已以HTML形式呈现到控制台。文本已被截断。

您可以对其进行更改,但这需要一些工作:

必要和有用的工具:

•ack(酿酒安装ack)或ag。(用于快速搜索巨大的文本文件)。

•python的paktools。用于解压缩chrome资源以便能够对其进行编辑。https://github.com/Magister/pak-tools

•选择的文本编辑器。

  1. cd或导航到您所用的任何Chrome版本。我以Chromium为例,但其他版本的路径相同:

    cd "/Applications/Chromium.app/Contents/Versions/YOURVERSION/Chromium Framework.framework/Resources/"
    
  2. 克隆或下载paktools。这将允许您解压缩Chrome资源,对其进行编辑,然后重新打包。我把我放在我的里面,~./bin但是你可以把它们放在任何地方。示例将反映我的道路:

  3. 现在在Chrome/.../Chrome Framework.framework/Resoures文件夹中执行: python2 ~/.bin/unpack.py resources.pakcd ./resouces

  4. 您将必须找到它的位置。文件一直都在变化,所以它永远都不一样。 $ ag "static linkify"那带我去了28542。我将函数修改为默认为2000个字符,并且还更新了CSS,以便可以在控制台中水平滚动。

  5. 现在,将cd从您解压缩的资源文件夹中移出,并放入其父文件夹中。执行: python2 ~/.bin/pack.py resources瞧。重新启动Chrome,您的devtools现在已自定义。

警告:6. devtools团队会在您不知情的情况下推出更新框架的版本。如果您这样做,您将丢失所有Mod。我通过执行/Users/Op/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/ksinstall --uninstall并杀死所有梯形畸变等来阻止它。

奇迹般有效。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.