ฉันจะป้องกันไม่ให้ Chrome ตัดทอนสตริงในคอนโซล dev ได้อย่างไร


46
> 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 ตัวอักษร ฉันไม่เห็นอะไรเลยในการตั้งค่าคอนโซลที่จะเปลี่ยนแปลงสิ่งนี้

คำตอบ:


42

ฉันเพิ่งค้นพบว่าเครื่องมือ Chrome dev มีcopyฟังก์ชั่นที่คัดลอกไปยังคลิปบอร์ด - โดยไม่ต้องตัดทอน! สะดวกในการใช้มันยังจัดอันดับวัตถุให้กับองค์ประกอบ JSON และ DOM เป็น HTML ตรงไปที่คลิปบอร์ด

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

ตั้งแต่ฉันพยายามคัดลอกสตริงที่ยาวไปยังคลิปบอร์ดเพื่อการวิเคราะห์ที่อื่นนี่เป็นสิ่งที่ฉันต้องการอย่างสมบูรณ์แบบ


3
ที่เนียน; ไม่ตอบคำถามจริงๆ แต่ควรเป็นความคิดเห็นแทน
jcollum

2
+1 สิ่งนี้มีประโยชน์มาก จริงอยู่ที่ว่ามันไม่ได้ตอบคำถามทางเทคนิค แต่มันแก้ปัญหาที่ก่อให้เกิดคำถามที่จะถาม - วิธีการได้รับข้อความเต็มไม่ถูกตัดทอนจากคอนโซล เพียงวางลงในโปรแกรมแก้ไขข้อความและคุณจะถูกจัดเรียง
พวกเขา

ฉันได้รับใน Chrome: การอ้างอิงที่ไม่ได้อ่านข้อผิดพลาด: การคัดลอกไม่ได้ถูกกำหนด
arod

3
@arod มีเฉพาะในคอนโซลไม่ใช่ gobally
WickyNilliams

2
สิ่งนี้ใช้ได้ใน Firefox ด้วย
Björn

16

console.dir(longstringhere) โรงงาน

copyundefinedไม่ได้ทำงานให้ฉันทั้งมันก็บอกว่ามันเป็น


1
กันที่นี่ 'console.copy' ไม่ทำงาน แต่ทำงานได้ 'console.dir' คุณบันทึกวันของฉัน
Betty

2
copyฟังก์ชั่นไม่ออกอะไร (จึงundefinedเป็นที่คาดหวัง) แทนชุดมันอาร์กิวเมนต์บัฟเฟอร์ระบบของคุณเพียงแค่วาง ( ctrl-v) ลงในโปรแกรมแก้ไขใด ๆ
nazikus

1
ไม่ทำงาน ....
Yossi Shasho

2
copy(yourVariable)คุณต้องคัดลอกจากสถานที่เช่นคอนโซลเบรกพอยต์ที่มีค่าเป็นเปิดคอนโซลประเภท นอกจากนี้มันเป็นเพียงแค่copyไม่ได้console.copy
WickyNilliams

1
ทุกฟังก์ชั่นใน JS คืนค่าไม่ได้กำหนดถ้าไม่ได้ระบุ ดังนั้นมันใช้งานได้จริง
atilkan

5

พฤติกรรมนี้ยังคงมีอยู่ใน Chrome รุ่น 37.0.2062.103

คุณสามารถแก้ไขได้ในขณะที่การดีบักโดยใช้: document.write ('ข้อความ Debug ยาวจริงๆของฉัน');


37.0.2062.120 m บน Windows 7: ไม่มีจุดไข่ปลา
jcollum

ไม่ทำงานอีกต่อไป ..
Totty.js


2

อัปเกรด Chrome เป็นรุ่น 32 ซึ่งไม่ทำสิ่งนี้อีกต่อไปตามที่แสดงในรูปภาพนี้:

ป้อนคำอธิบายรูปภาพที่นี่


2
chrome canary v36 + ... มันยังคงเป็นเช่นนั้น ... แต่ตอนนี้ไม่แสดงความยาว long string...ends hereเช่น
gcb

คุณอยู่ใน Chrome รุ่นที่ยังไม่ได้เปิดตัว มันไม่ได้เกิดขึ้นใน v33 บน Ubuntu: imgur.com/RPCgR6f - คุณลงคะแนนฉันเพราะวิธีการแก้ปัญหาของฉันไม่ได้แก้ไขปัญหาของคุณแม้ว่าคุณจะอยู่ในรุ่นก่อนวางจำหน่ายหรือไม่!
jcollum

1
"แก้ปัญหาการใช้งานเบราว์เซอร์เวอร์ชั่นเก่าไม่สามารถทำได้" --- ไม่ใช่เบราว์เซอร์เวอร์ชั่นเก่า! ฉันรู้แล้วและที่ v33 ในอูบุนตู กล่อง windows ของฉันทันสมัยแล้ว v34 ฉันไม่รู้ว่าคุณได้รับ v36 จากที่ไหน "มันไม่ได้เกิดขึ้นใน v33" - และมันก็ไม่ได้ซึ่งภาพหน้าจอ (จาก v33) พิสูจน์ได้
jcollum

1
Takeaway ที่สำคัญคือข้อผิดพลาดนี้ / พฤติกรรมที่ถูกแทรกกลับมาหลังจาก 33 หรือ 34
GCB

1
เยี่ยมมาก คุณควรส่งรายงานข้อผิดพลาด เนื่องจากChrome รุ่นที่วางจำหน่ายในปัจจุบันไม่ได้มีคุณจึงไม่ควรลงคะแนนให้ฉันเมื่อพูดว่าการอัปเดตเป็นChrome รุ่นที่ออกใหม่ล่าสุดจะแก้ไขได้ และนั่นก็เป็นความจริงสำหรับ V34 บน Win7 และ V33 บน Ubuntu
jcollum

2

ใน Chrome 58 (อาจจะเร็วกว่านี้) คุณสามารถใช้Store as Global Variableตัวเลือกเมนูบนเมนูตามบริบทของค่าใด ๆ ในคอนโซลซึ่งซ้อนอยู่ในทุกระดับ มันกำหนดค่าที่เลือกให้กับตัวแปรที่มีชื่อไม่ซ้ำกันซึ่งถูกบันทึกลงในคอนโซลทันที

ลองใช้กับค่า 400KB!

ที่มา: https://stackoverflow.com/a/41726364/250838


2

ความยาวของสตริงที่แสดงผลไปยังคอนโซลถูก จำกัด โดยทางโปรแกรมภายใน inspector.js มันตั้งไว้ที่ 150 ตัวอักษรโดยค่าเริ่มต้น ไม่มี CSS ที่คุณสามารถใช้ได้เนื่องจากมีการแสดงผลไปยังคอนโซลเป็น HTML ข้อความถูกตัดทอนแล้ว

คุณสามารถเปลี่ยนได้ แต่มันจะต้องใช้เวลาทำงานเล็กน้อย:

เครื่องมือที่จำเป็นและเป็นประโยชน์:

• ack (ชงติดตั้ง ack) หรือ ag (สำหรับการค้นหาไฟล์ข้อความขนาดใหญ่อย่างรวดเร็ว)

• 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 การทำเช่นนี้จะช่วยให้คุณสามารถแกะทรัพยากรโครเมี่ยมออกมาทำการแก้ไขแล้วบรรจุใหม่ ฉันวางระเบิดไว้ในตัว~./binแต่คุณสามารถวางมันได้ทุกที่ ตัวอย่างจะสะท้อนเส้นทางของฉัน:

  3. ตอนนี้ในChrome/.../Chrome Framework.framework/Resouresโฟลเดอร์ดำเนินการ: python2 ~/.bin/unpack.py resources.pakและcd ./resouces

  4. คุณจะต้องค้นหาว่ามันอยู่ที่ไหน ไฟล์จะเปลี่ยนแปลงตลอดเวลาและดังนั้นจึงไม่เหมือนเดิม ที่พาฉันไป$ ag "static linkify" 28542ฉันปรับเปลี่ยนฟังก์ชั่นเป็นค่าเริ่มต้นเป็น 2,000 ตัวอักษรและปรับปรุง css เพื่อให้ฉันสามารถเลื่อนในแนวนอนในคอนโซล

  5. ตอนนี้ซีดีกลับออกมาจากโฟลเดอร์ resouces คุณแยกออกและเป็นผู้ปกครอง ดำเนินการ: python2 ~/.bin/pack.py resourcesและ voila รีสตาร์ท Chrome และ devtools ของคุณถูกกำหนดเองแล้ว

คำเตือน: 6. ทีม devtools ผลักดันการอัพเดตเวอร์ชันของเฟรมเวิร์กโดยที่คุณไม่รู้ตัว และคุณจะสูญเสีย mods ของคุณทั้งหมดถ้าพวกเขาทำ ฉันบล็อกมันโดยการดำเนินการ/Users/Op/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/ksinstall --uninstallและฆ่าดีสโตนหลักทั้งหมดเป็นต้น

ทำงานเหมือนจับใจ

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.