javascript
  • jquery
  • ajax
  • debugging
  • google-chrome
  • 2011-12-13 4344 views 6 likes 
    6

    Tôi đang tải html với một số javascript nội tuyến trên một cuộc gọi lại $ .post. Một cái gì đó "như thế" :-)Tại sao tôi không thể thấy/gỡ lỗi javascript được tải bằng jquery.html() bằng Chrome

    callback{ 
    response_data = '<p>string with html and </p><script "javascript">var scripts...</script>' 
    jQuery('#selector').html(response_data); 
    } 
    

    Nhưng khi tôi làm điều đó, tôi không thể xem javascript nội tuyến mới được tải trên Tab Scripts của Chrome. Tôi thấy rằng JS trên tab Mạng và js đang thực thi nhưng tôi không thể gỡ lỗi mã này.

    Bất kỳ ý tưởng nào về cách gỡ lỗi mã này? Cảm ơn!

    +0

    có một cái nhìn tại 'Bảng điều khiển tab', nhấp chuột phải và chọn check XMLHttpRequest – cristian

    +0

    Bởi vì tôi giả sử trình duyệt không nghe các cuộc gọi không đồng bộ để cập nhật danh sách các tệp có sẵn – Pawan

    Trả lời

    8

    Tất cả các công cụ JS hiện đại đều cho phép tạo điểm ngắt javascript "trong mã".

    Để làm điều đó, bạn cần phải thực hiện tuyên bố debugger; ở đâu đó trong mã của bạn. Ngay khi động cơ js đọc lệnh đó, một điểm ngắt được thiết lập và trình gỡ rối được nạp.

    Bạn có thể muốn chụp ảnh đó. Nó có thể vẫn không hoạt động chính xác vì chèn kịch bản động vẫn có thể gặp rắc rối và đau đớn, tùy thuộc vào cách thức và thời điểm bạn thực hiện.

    Nó sẽ chắc chắn là một ý tưởng tốt hơn để làm điều đó nhiều hơn "chính xác" bằng cách tạo ra và chèn một mới script element

    var myscript = document.createElement('script'); 
    myscript.textContent = 'var scripts = 42; alert("hello");'; 
    myscript.type = 'text/javascript'; 
    
    document.body.appendChild(myscript); 
    
    +4

    +1 cho câu lệnh 'debugger;' –

    +0

    Trình gỡ lỗi; là một cơ hội tốt. Dù sao tôi di chuyển tất cả JS để .js tập tin để giải quyết nó :) – rubdottocom

    +0

    Chỉ cần lưu cuộc sống của tôi. Chỉ có bấy nhiêu thôi... – DontVoteMeDown

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