ฉันสามารถบอกให้โปรแกรมแก้ไขข้อบกพร่องสคริปต์ Chrome ละเว้น jquery.js ได้หรือไม่


98

มีวิธีบอกดีบักเกอร์ Chrome (หรืออาจจะเป็น Firebug?) ไม่ให้แตกภายในไฟล์บางไฟล์หรือไม่? จะถือว่าพวกเขาไม่ได้แตกหักโดยพื้นฐานแล้ว? ดูเหมือนว่าสิ่งที่พวกเขาอาจสร้างขึ้น


3
สิ่งนี้จะเป็นประโยชน์อย่างยิ่งสำหรับฉันในบริบทของเหตุการณ์ jquery เมื่อเหตุการณ์ถูกกระตุ้นคุณต้องผ่านขั้นตอนมากมายเพื่อดูว่าตัวจัดการใดถูกเรียกใช้
tofarr

ดูเหมือนว่าคุณควรทำเครื่องหมาย jfriend00 เป็นคำตอบ ฉันไม่สามารถหาสาเหตุของพฤติกรรมที่น่ารำคาญนั้นได้และคำตอบของเขาก็แก้ไขได้
OrPaz

@OrPaz ฉันไม่เห็นด้วยปัญหาของฉัน (และความเข้าใจของฉันเกี่ยวกับปัญหาของ Josh) คือเรากำลังดีบักไฟล์ของเรา แต่นี่ไม่ได้หมายความว่ามีการโยนข้อยกเว้น สมมติฐานของฉันคือรหัสของฉันเป็นปัญหาไม่ใช่ของ jQuery ดังนั้นฉันไม่ต้องการดีบัก jQuery ฉันคิดว่ามันเหมือน DebuggerHiddenAttribute ใน. NET
Nathan Koop

ฉันโหวตคำตอบของ jfriend00 เพราะมันอาจมีประโยชน์สำหรับคนที่เจอคำถามนี้ แต่ฉันไม่ได้ทำเครื่องหมายว่าเป็นคำตอบที่ถูกต้องเพราะ Nathan Koop พูดถูกมันไม่ได้ช่วยแก้ปัญหาของฉัน
Josh Schultz

คำตอบ:


47

ไฟล์ Blackboxing JS สามารถทำได้แล้วใน Firefox https://developer.mozilla.org/en-US/docs/Tools/Debugger

และใน Chrome Canary โดยใช้เครื่องมือ Experimental Dev http://www.divshot.com/blog/tips-and-tricks/ignoring-library-code- while-debugging-in-chrome/

อัปเดต . ใน Chrome v. 75มี separabeแท็บ blackboxing

ด้านบนใช้งานได้ใน Chrome build ที่เสถียรเช่นกัน


7
Blackboxing ดูเหมือนจะไม่ทำให้ดีบักเกอร์ข้ามไฟล์ มันจะยังคงผ่านการเรียกใช้ฟังก์ชัน ... การละเว้นไฟล์โดยสิ้นเชิงจะดี
Antonio Brandao

4
นั่นคือประเด็นใน blackboxing - เรียกใช้โค้ดโดยไม่เห็นเนื้อหา
diynevala

1
ไม่ใช่ blackboxing เมื่อคุณไม่ก้าวผ่านไลบรารีอื่นไม่ใช่ว่าไม่มีอยู่จริงหรือไม่ได้ใช้งาน
จอห์นนี่

อัปเดตลิงค์สำหรับ firefox: developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/…
pcarvalho

31

Chrome เวอร์ชันล่าสุดได้ใช้คุณลักษณะ blackboxใหม่ที่ตอบสนองสิ่งที่คุณกำลังมองหา โดยทั่วไปเมื่อคุณตั้งค่าตัวเลือก blackbox ในไฟล์ที่กำหนดระบบจะป้องกันไม่ให้โปรแกรมแก้ไขข้อบกพร่องของ Chrome เจาะเข้าไปในไฟล์นั้น

คุณลักษณะนี้มีอยู่แล้วภายในและสามารถตั้งค่าได้ด้วยเมนูบริบทของไฟล์ (คลิกขวา) นอกจากนี้ยังจะใช้งานได้หากตั้งค่าตัวแก้ไขข้อบกพร่องของ Chrome เพื่อหยุดข้อยกเว้นทั้งหมด


2
โซลูชันที่สะอาดมากไม่จำเป็นต้องใช้ปลั๊กอิน
George Botros

3
ไม่ทำงานอีกต่อไปอย่างน่าเสียดาย หากคุณได้เลือก "หยุดชั่วคราวเมื่อข้อยกเว้นที่ถูกจับ" และ blackbox jQuery มันจะยังคงทำลายข้อยกเว้น
blackmamba

15

หากปัญหาที่คุณพบคือตัวแก้ไขข้อบกพร่องของ Chrome หยุดทำงานในข้อยกเว้นทั้งหมดแม้แต่ข้อยกเว้นที่อยู่ใน jQuery คุณอาจต้องบอกให้ Chrome หยุดเฉพาะข้อยกเว้นที่ไม่สามารถตรวจจับได้ชั่วคราวเท่านั้นไม่ใช่ข้อยกเว้นทั้งหมด เมื่ออยู่ในพาเนลสคริปต์ในดีบักเกอร์จะมีไอคอนที่มุมล่างซ้ายของหน้าต่างที่ควบคุมสิ่งนี้


ช่วยฉันด้วยสิ่งนี้! ขอบคุณ! (+ 1)
OrPaz

12

ใน Chrome ให้เปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์จากนั้นไปที่การตั้งค่าแล้วคุณจะเห็นแท็บBlackbox :

Chrome Blackbox

ใน FireFox จะง่ายยิ่งขึ้นเพียงคลิกที่ Eye ที่ด้านล่างของไฟล์:

FireFox Blackbox


คุณทำให้ชีวิตของฉันเป็นสวรรค์! ขอบคุณ!
ไม่รู้

7
  1. ไปที่การตั้งค่าเครื่องมือสำหรับนักพัฒนาและคลิกที่แท็บ Balckboxing บนแผงด้านซ้าย
  2. จากนั้นคลิกที่ปุ่มเพิ่มรูปแบบและพิมพ์ jquery.js
  3. ปิดและเปิดเครื่องมือสำหรับนักพัฒนาอีกครั้งตอนนี้ข้ามไปแล้ว!

2

หากดีบักเกอร์ระเบิดขึ้นที่ใดที่หนึ่งในไฟล์ jQuery คุณอาจตัดสายผู้ต้องสงสัยในการลอง / จับแล้วโยนข้อผิดพลาดในตัวคุณเอง catchจับแล้วโยนความผิดพลาดในของคุณเอง ด้วยวิธีนี้คุณสามารถแยกได้ว่าคุณกำลังทำอะไรผิดพลาด

ฉันอยากจะทำสแต็กเทรซมากกว่าเพื่อดูว่าทำไมโค้ดของฉันถึงระเบิดเช่น JSON ไม่ถูกต้องแทนที่จะพยายามปัดสวะ

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