Dapatkah saya memberi tahu debugger skrip Chrome untuk mengabaikan jquery.js?

98

Adakah cara untuk memberi tahu debugger Chrome (atau mungkin Firebug?) Agar tidak membobol file tertentu? Untuk menganggap mereka tidak rusak, pada dasarnya? Ini sepertinya sesuatu yang mungkin mereka bangun.

Josh Schultz
sumber
3
Ini akan sangat berguna bagi saya dalam konteks acara jquery. Ketika sebuah acara dipicu, Anda harus melewati banyak hal kasar untuk mengetahui penangan mana yang dipanggil.
tofarr
Sepertinya Anda harus menandai jfriend00 sebagai jawabannya. Saya tidak dapat menemukan alasan untuk perilaku yang mengganggu itu, dan jawabannya menyelesaikannya.
OrPaz
@OrPaz Saya tidak setuju, masalah saya (dan pemahaman saya tentang masalah Josh) adalah bahwa kami men-debug file kami, namun ini tidak berarti pengecualian sedang dilemparkan. Asumsi saya adalah bahwa kode saya adalah masalahnya dan bukan jQuery, jadi saya tidak pernah ingin men-debug jQuery. Saya menganggapnya seperti DebuggerHiddenAttribute di .NET
Nathan Koop
Saya memilih jawaban jfriend00, karena mungkin berharga bagi orang-orang yang menemukan pertanyaan ini, tetapi saya tidak menandainya sebagai jawaban yang benar, karena Nathan Koop benar, itu tidak menyelesaikan masalah saya.
Josh Schultz

Jawaban:

47

File Blackboxing JS sekarang dapat dilakukan di Firefox https://developer.mozilla.org/en-US/docs/Tools/Debugger

Dan di Chrome Canary menggunakan alat Pengembang Eksperimental. http://www.divshot.com/blog/tips-and-tricks/ignoring-library-code- While-debugging-in-chrome/

Perbarui . Di Chrome v. 75 ada tab terpisah untuk blackboxing .

Di atas juga berfungsi di build Chrome stabil sekarang.

Nirmal Patel
sumber
7
Blackboxing sepertinya tidak membuat debugger melewatkan file. Ini masih akan melewati panggilan fungsinya ... Mengabaikan file sepenuhnya akan menyenangkan.
Antonio Brandao
4
Itulah inti dari blackboxing - menjalankan kode tanpa melihat isinya.
diynevala
1
Bukan blackboxing ketika Anda tidak menelusuri perpustakaan lain, bukan karena mereka tidak ada atau tidak digunakan.
johnny
tautan yang diperbarui untuk firefox: developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/…
pcarvalho
31

Versi terbaru Chrome telah menerapkan fitur kotak hitam baru yang melakukan persis seperti yang Anda cari. Pada dasarnya, ketika Anda mengatur opsi kotak hitam pada file tertentu, itu akan mencegah debugger Chrome membobol file itu.

Fitur ini built-in dan dapat diatur dengan menu konteks file (klik kanan). Ini juga akan berfungsi jika debugger Chrome disetel untuk menghentikan semua pengecualian.

The_Black_Smurf
sumber
2
Solusi sangat bersih Tidak perlu plugin.
George Botros
3
Sayangnya tidak lagi berfungsi. Jika Anda mencentang "Pause On Caught Exception" dan kemudian blackbox jQuery itu akan tetap merusak pengecualian.
blackmamba
15

Jika masalah yang Anda alami adalah debugger Chrome berhenti pada semua pengecualian, bahkan yang ada di dalam jQuery, maka Anda mungkin perlu memberi tahu Chrome untuk hanya berhenti pada pengecualian yang tidak tertangkap, tidak semua pengecualian. Saat di panel Script di debugger, ada ikon di sudut kiri bawah jendela yang mengontrol ini.

jfriend00
sumber
Menyelamatkan saya dengan ini! Terima kasih! (+1)
OrPaz
12

Di Chrome, buka Alat Pengembang, lalu buka Pengaturan, dan Anda akan melihat tab Kotak Hitam :

Kotak Hitam Chrome

Di FireFox lebih mudah lagi, cukup klik Mata di bagian bawah file:

FireFox Blackbox

sMyles
sumber
Anda baru saja membuat hidup saya surga! Terima kasih!
Tidak Tahu
7
  1. Buka setelan alat pengembang dan klik tab Balckboxing di panel kiri.
  2. Kemudian klik tombol Add pattern dan ketik jquery.js
  3. Tutup dan buka kembali alat pengembang, sekarang dilewati!
Mahmood Asadi
sumber
2

Jika debugger meledak di suatu tempat di file jQuery, Anda berpotensi membungkus panggilan tersangka dalam coba / tangkap dan kemudian membuat kesalahan sendiri catch. Dengan begitu, Anda dapat mengisolasi dengan tepat di mana kesalahan Anda.

Saya akan lebih cenderung melakukan pelacakan tumpukan untuk melihat mengapa kode saya meledak, misalnya JSON yang tidak valid, daripada mencoba mengabaikannya.

Kelly Sutton
sumber