2012-10-30 8 views
22

Khi tôi tải động một đoạn mã html chứa javascript qua AJAX, tôi không thể thấy nội dung đó trong tab nguồn trong cửa sổ công cụ dành cho nhà phát triển trong Chrome 22.0.1229.94. Đáng chú ý, tôi đi đâyKhông thể thấy mã được tải động trong Công cụ dành cho nhà phát triển Chrome 22

https://developers.google.com/chrome-developer-tools/docs/scripts-breakpoints#js_dynamic

Trang này cho thấy một ví dụ cửa sổ công cụ phát triển đó là hết hiệu lực. Có một nút trên trang để tải một tập lệnh động và nó không hiển thị trong tab nguồn khi bạn làm.

Là một công việc xung quanh, tôi đã tìm thấy rằng việc thêm

debugger; 

để kịch bản và tải lại nó sẽ gây ra nó để tạm dừng trong các mã nạp tự động, nhưng thật không may, tất cả các số dòng là màu xám và bạn không thể đặt bất kỳ điểm ngắt nào trong trình gỡ lỗi.

Tôi có thiếu gì đó ở đây hay không?

Cảm ơn, Rob

+0

Bản sao có thể có của [Có thể gỡ lỗi JavaScript tải động bởi một số trình gỡ lỗi như WebKit, FireBug hoặc IE8 Developer Tool?] (Http://stackoverflow.com/questions/1705952/is-possible-to-debug-dynamic- loading-javascript-by-some-debugger-like-webkit-fi) – JerryGoyal

Trả lời

5

Bạn có thể sử dụng // @ sourceURL. Chrome dường như không hỗ trợ // @ sourceURL cho tập lệnh nội tuyến. Tuy nhiên, nó hoạt động trên các biểu thức eval. This article cung cấp thêm thông tin chi tiết về cách đặt tên cho các khối eval và đặt tên của bất kỳ hàm ẩn danh nào trong mã của bạn.

Thay vì sử dụng eval, bạn có thể thử nhúng một thẻ tập lệnh hoặc JSONP có thể.

Varunkumar Nagarajan

23

Khi bạn sử dụng một thư viện hoặc mã javascript mà bạn đã tải nó tự động, bạn có thể sử dụng cụm từ

//@ sourceURL=foo.js 

vào đầu mã javascript của bạn mà foo.js là tên sẽ được chỉ định. trình gỡ rối sẽ hiển thị nó với tên đó. Điều này đúng trong chrome, và tôi cũng nghĩ trong firebug. Trong trường hợp này, bạn có thể đặt điểm ngắt trong mã javascript được nạp động.

+0

Thật không may, tôi gặp phải vấn đề tương tự. Tuy nhiên tôi đang tải những tập tin này dạng Yahoo CDN (chúng là phụ thuộc module). Trong Firefox (23.0.1) trong Firebug (1.12.0) các tệp này được hiển thị trong tab Tập lệnh. Trong Chrome (29.0.1547.62 m), chúng chỉ có thể truy cập trong tab Tài nguyên và Mạng. Tôi cần thiết lập các điểm ngắt ở đó và tôi không thể ... – op1ekun

+0

Tôi đề nghị bạn tải nó bằng cách sử dụng một thư viện được thực hiện cho mục đích này. ví dụ bằng cách sử dụng require.js. Hoặc bạn có thể tải chúng bằng một phương thức giống như phương thức đã được sử dụng trong require.js. –

+0

YUI (tôi đang sử dụng) có cách tải mô-đun riêng. Nó tương tự như require.js. Cuối cùng, bạn kết thúc với thẻ được tạo động đã hoạt động! –