Skrip yang ditambahkan secara dinamis tidak muncul di bagian skrip debugger browser.
Penjelasan:
Saya perlu menggunakan dan telah digunakan
if( someCondition == true ){
$.getScript("myScirpt.js", function() {
alert('Load Complete');
myFunction();
});
}
sehingga myScript.js dapat dimuat secara dinamis saat memenuhi beberapa kondisi ... Dan myFunction hanya dapat dipanggil setelah seluruh skrip dimuat ...
Tetapi browser tidak menampilkan myScript.js yang dimuat secara dinamis di bagian skrip debugger mereka.
Apakah ada cara lain sehingga semua tujuan dapat tercapai yang akan membuat seseorang dapat men-debug skrip yang dimuat secara dinamis di browser itu sendiri?
javascript
debugging
dynamic
loaded
TwiToT
sumber
sumber
debugger;
untuk berhenti otomatis dalam skrip yang dimuat dinamis, lihat javascript.info/debugging-chromeJawaban:
Anda dapat menamai skrip yang dimuat secara dinamis agar ditampilkan di debugger JavaScript Chrome / Firefox. Untuk melakukan ini, Anda memberi komentar di akhir skrip:
//# sourceURL=filename.js
File ini kemudian akan ditampilkan di tab "Sumber" sebagai
filename.js
. Dalam pengalaman saya, Anda dapat menggunakan \ dalam nama tetapi saya mendapatkan perilaku aneh jika menggunakan /.Untuk informasi selengkapnya, lihat: Titik henti dalam penghentian JavaScript Dinamis dari // @ sourceurl
sumber
Anda dapat menggunakan
//# sourceURL=
dan//# sourceMappingURL=
di akhir file skrip atau tag skrip Anda.CATATAN:
//@ sourceURL
dan//@ sourceMappingURL
tidak digunakan lagi.sumber
Saya mencoba menggunakan "// # sourceURL = filename.js" yang disarankan sebagai solusi oleh OP, tetapi masih tidak muncul untuk saya di panel Sumber kecuali sudah ada di tab saya dari waktu sebelumnya ketika itu menghasilkan pengecualian.
Membuat kode "debugger;" garis memaksanya putus di lokasi itu. Kemudian setelah berada di tab saya di panel Sumber, saya dapat menyetel breakpoint seperti biasa dan menghapus "debugger;" garis.
sumber
debugger;
, dan DevTools harus dibuka saat skrip dimuat.//# sourceURL=browsertools://yourdomaingoeshere.com/action-openuwws.js
Perhatikan bahwa file sumber yang muncul di tab sumber dengan cara ini akan muncul di grup (tanpa domain) dan, jika Anda ingin men-debugnya, Anda perlu menambahkan
debugger;
baris dalam kode Anda, buat baris itu dijalankan (biasanya di awal eksekusi file sumber Anda) dan kemudian tambahkan breakpoint Anda di mana pun Anda inginkan.Jika Anda melakukan debug pada tahap produksi, di mana Anda mungkin tidak memiliki
debugger;
baris dalam kode Anda, Anda dapat mewujudkannya dengan melakukan peta lokal dengan CharlesProxy ke "salinan baru file sumber dengan baris debbuger dimasukkan".sumber
Ketika mencoba melacak hal semacam ini di IE, saya membuka alat dev (F12) dan kemudian menemukan di mana menempatkan breakpoint dengan menggunakan baris berikut di konsol:
debugger;myFunction();
Itu beralih ke tab debugger tempat Anda dapat masuk
myFunction()
dan mengatur breakpoint.sumber