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.


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.


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


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.


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.


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


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!

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.