2012-05-16 28 views
5

tôi đã tạo ra một "Hello World" kịch bản Greasemonkey trong Firefox mà chỉ chứa một dòng mã:GM_log và chức năng GM khác không làm việc trong các kịch bản Greasemonkey

GM_log("Hello World"); 

này dường như không hoạt động, tại ít nhất nó không tạo ra bất kỳ đầu ra nào trong giao diện điều khiển firebug của tôi.
Cùng với các chức năng khác của GM _... như GM_wait

Khi tôi thay thế:

GM_log("Hello World"); 

với:

alert("Hello World") 

nó làm việc (vì vậy tiêu đề kịch bản không phải là vấn đề).

Tôi cũng đã thiết lập các tùy chọn sau about:config true:

  • javascript.options.showInConsole
  • extensions.firebug.showChromeErrors
  • extensions.firebug.showChromeMessages

Có một số thiết lập khác để thay đổi cho các chức năng GM _... để làm việc trong Greasemonkey script?

Tôi có phải thay đổi cài đặt firebug khác cho tin nhắn GM_log để hiển thị trong bảng điều khiển firebug không?

Trả lời

1

tôi muốn khuyên bạn nên quên đi GM_log() và sử dụng:

console.log('hello world'); 

http://wiki.greasespot.net/GM_log

Giống như nó nói "vì GM_log sẽ chỉ hiển thị một chuỗi duy nhất tại một thời gian, người sử dụng với Firebug cài đặt có thể thích sử dụng console.log thay thế. "

Nhưng về câu hỏi của bạn, tôi không thể nói lý do.

+0

Cảm ơn. Nó đã làm việc với console.log. Tôi cũng đã thay thế GM_wait bằng chức năng javascript "bình thường". Thật lạ lùng, các chức năng GM khác vẫn hoạt động không có vấn đề (GM_xmlhttpRequest). –

3

Bạn nhận được GM_wait ở đâu? Đó không phải là a GM function; một số người chỉ đặt tên cho các chức năng đặc biệt của họ. Lưu ý rằng GM version 0.9.19 broke a lot of timing functionality, nhưng điều này đã được sửa trong phiên bản 0.9.20.

Đối với GM_log(), hoạt động nhưng không phải lúc nào cũng đặt thông điệp ở vị trí hợp lý. Trên các phiên bản sau này của Greasemonkey, GM_log() ghi vào Bảng điều khiển Lỗi Firefox - mà bạn có thể mở bằng cách nhấn tổ hợp phím Ctrl phím ShiftJ.
Nhưng, as Comentarist said, không có lý do chính đáng để sử dụng GM_log nữa. Đó là chức năng giới hạn và không hoạt động tốt.

Tất cả các trình duyệt tốt hiện hỗ trợ console.log() nguyên bản (Không có Firebug bắt buộc), nhưng trên Firefox, điều này cũng có xu hướng to output to Firefox's Error Console.

Để sử dụng Firebug's excellent logging functions (cũng có giá trị một cái nhìn), bạn đang phải sử dụng unsafeWindow như vậy:

unsafeWindow.console.clear(); 
unsafeWindow.console.log ("Hello World!"); 
1

Lý do cho điều này là một mới đặc biệt Metadata Khối bắt buộc: @grant, thêm vào trong GM 1.0. Nếu bạn cần GM_log hoạt động, bạn phải thêm dòng này vào tập lệnh của bạn Siêu dữ liệu Chặn: "// @grant GM_log" , nếu không nó sẽ không hoạt động. Bạn có thể đọc về tính năng này tại http://wiki.greasespot.net/@grant.

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