2012-06-28 45 views
7

Tôi * đang sử dụng JS phía máy khách để phân tích các tệp XML và tạo mã JS phức tạp thành eval. (Tạo các hàm có thể sử dụng lại được khởi động bởi thời gian chạy.) Tuy nhiên, tôi cần phải gỡ lỗi mã đang được tạo và muốn sử dụng các điểm ngắt tích hợp, bước, cửa sổ xem của Chrome, v.v.Đặt điểm ngắt và gỡ lỗi JavaScript đã đánh giá

Có một cách dễ dàng hơn để thực hiện việc này hơn:

  • Dỡ chuỗi JS được tạo ra vào bảng điều khiển và/hoặc cửa sổ.
  • Sao chép JavaScript
  • (tùy chọn) Chạy JS thông qua trình tạo hình như JSBeautifier.
  • Dán mã JS vào tệp được tải qua <script src="..."> trong một trang web khác.

* trên thực tế, một người bạn của tôi đã làm điều này, không phải tôi

Trả lời

16

Thay vì sử dụng eval, và thay vì tự sao chép/dán vào một tập tin riêng biệt, bạn có thể tự động tải các JS trực tiếp vào trang đã tạo bằng cách sử dụng data uri trên phần tử <script> được tạo động. Với cách tiếp cận này, Công cụ dành cho nhà phát triển của Chrome (và Firebug) cho phép bạn chọn dữ liệu-URI dưới dạng tập lệnh, bật tính năng In đẹp, đặt điểm ngắt và tắt đi.

var js = createMyJSCodeString(); 
addCode(js); // Right now! Debuggable! 

// Dynamically evaluate JavaScript-as-string in the browser 
function addCode(js){ 
    var e = document.createElement('script'); 
    e.type = 'text/javascript'; 
    e.src = 'data:text/javascript;charset=utf-8,'+escape(js); 
    document.body.appendChild(e); 
} 
+0

Bạn vừa ... trả lời chính mình? Nghe có vẻ như bạn đã nói về điều này trong câu hỏi của bạn. – TheZ

+4

@ TheZ Vâng, tôi đã làm. Đây là một [thực hành được chấp nhận trên Stack Overflow] (http://meta.stackexchange.com/questions/17845/etiquette-for-answering-your-own-question) để thêm vào cơ sở tri thức. Bây giờ thậm chí còn có dấu kiểm để nhấn để tự động thêm câu trả lời khi bạn đăng câu hỏi, đó là những gì tôi đã sử dụng ở đây. – Phrogz

+0

Ồ tôi hiểu rồi! Cảm ơn bạn đã giải thích nó – TheZ

Các vấn đề liên quan