2009-07-25 34 views
13

Tôi đang viết một phần mở rộng cho Firefox, và tôi cần phải đăng nhập một số dữ liệu vào giao diện điều khiển của Firebug. Trong phạm vi của addon của tôi, "console" là không xác định, và "window.content.console" cũng không được xác định. Vậy làm thế nào để đăng nhập vào giao diện điều khiển?Làm cách nào để bạn đăng nhập vào Firebug từ tiện ích mở rộng?

Trả lời

16

Vì bạn không viết Javascript thực hiện trong một cửa sổ, console không được xác định.

Vì vậy, bạn cần phải tham khảo phần mở rộng Firebug đầu tiên:

Firebug.Console.log(str); 
+5

Oopch, 'Firebug' chưa được xác định! –

+0

Tôi đã cài đặt Firebug nhưng có vẻ như bạn không thể thực hiện việc này nữa. 'Firebug' là' undefined'. –

+0

@TahaJahangir, chỉ cần bật Firebug của bạn trên cho trang hiện tại và nhấn f5;) –

1

Giao diện điều khiển Firebug được liên kết với một trang cụ thể, vì vậy nó sẽ không thuận tiện ngay cả khi bạn quản lý đăng nhập thư ở đó. Bạn đã dùng thử Chromebug chưa? Tôi đã không sử dụng nó, nhưng tôi hy vọng sẽ tìm thấy một giao diện điều khiển tương tự cho các phần mở rộng để sử dụng ở đó.

Bạn cũng có thể sử dụng Bảng điều khiển Lỗi thông thường, mặc dù bạn sẽ không nhận được tất cả các tính năng ưu việt mà bảng điều khiển Firebug cung cấp. Bạn có thể cài đặt Bảng điều khiển^2 https://addons.mozilla.org/en-US/firefox/addon/1815 để sử dụng Bảng điều khiển Lỗi một chút ít đau đớn.

1

Nếu trong phần mở rộng của bạn, bạn có quyền truy cập vào các đối tượng nội dung cửa sổ, bạn có thể Unwrap nó, và gọi các phương pháp điều khiển trực tiếp:

window.wrappedJSObject.console.log('something important'); 
+0

window.wrappedJSObject không được xác định –

1

Có những ngữ cảnh trong đó ngay cả đối tượng Firebug cũng không rõ, như thể bạn đang cố gắng gọi nó từ thanh bên ... trong trường hợp này bạn phải quay lại cửa sổ gốc để lấy đối tượng firebug :

var Firebug = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor) 
.getInterface(Components.interfaces.nsIWebNavigation) 
.QueryInterface(Components.interfaces.nsIDocShellTreeItem) 
.rootTreeItem 
.QueryInterface(Components.interfaces.nsIInterfaceRequestor) 
.getInterface(Components.interfaces.nsIDOMWindow).Firebug; 

Bạn có thể sau đó từ bên trong sidebar gọi Firebug bạn như vậy:

Firebug.Console.log("foo"); 

Đây là tài liệu ở đây: https://developer.mozilla.org/en/Code_snippets/Sidebar

2

Để đăng nhập vào giao diện điều khiển từ bên trong javascript một phần mở rộng của firefox:

Application.console.log ("Xin chào từ Tiện ích mở rộng Firefox của tôi!");

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