2008-10-24 38 views
11

Tôi đang viết mã javascript được đọc dưới dạng chuỗi và được thực thi qua eval() bằng tiện ích mở rộng firefox. Firebug không "xem" tập lệnh của tôi để tôi không thể sử dụng các điểm ngắt, xem các đối tượng, v.v.Gỡ lỗi các tập lệnh giống như đoạn mã thông báo

Tôi hiện đang sử dụng bảng điều khiển lỗi của Firefox mà tôi bắt đầu thấy hạn chế. Tôi còn có những lựa chọn nào khác? Lý tưởng nhất, tôi sẽ có thể sử dụng Firebug hoặc một cái gì đó tương tự như nó. Mọi người thường gỡ lỗi các tập lệnh Greasemonkey như thế nào?

Tôi đã thử sử dụng Lint và các trình xác thực khác, nhưng tập lệnh của tôi sử dụng rất nhiều đối tượng và chức năng do môi trường mở rộng cung cấp, khiến rất nhiều lỗi được báo cáo không có liên quan. Ngoài ra, đầu ra có xu hướng quá nitpicky (tập trung các vấn đề khoảng cách, v.v.).

Trả lời

1

Theo như tôi biết, Firebug hỗ trợ eval() gỡ lỗi từ 1.1, đặc biệt cho GreaseMonkey, bạn có thể sử dụng GM_log cho khai thác gỗ cơ bản, bạn có thể tìm thấy công cụ hữu ích này cũng:

2

Tôi đã tạo bảng điều khiển tương tác để gỡ lỗi G kịch bản lệnh reasemonkey. Nó đòi hỏi Google Gears, nhưng nó bao gồm một lịch sử liên tục của các lệnh đã được gõ.

CẬP NHẬT: Here's a link vào bài đăng trên blog mô tả bằng GreasyThug để gỡ lỗi tập lệnh GM. Nó có một thủ tục từng bước để tái tạo một lỗi và đưa ra một giải pháp.

1

Tôi đang sử dụng mã này để có thể truy cập trang DOM sử dụng jQuery (không cần cho hacks unsafeWindow) và đăng nhập lỗi để Firebug console:

(function(_, $){ 
    try { 
    var GM_log = function(obj) { _.console.log(obj); } 

    // $("#my_div").reaplaceWith("hello world!"); 
    // _.someFunctionDefinedInTheWebsite(); 

    } catch(e) { 
    GM_log(e); 
    } 
})(unsafeWindow, unsafeWindow.jQuery); 

LƯU Ý: ví dụ này giả định rằng trang bạn đang truy cập đã sử dụng jQuery

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