2012-06-28 33 views
7

Tôi có một plugin đơn giản rằng chỉ cần làm điều gì đó như thế này:chrome.extension.onMessage là undefined

chrome.extension.onMessage.addListener(function(msg, _, sendResponse) { 
    log("Got message from background page: " + msg); 
}); 

không may khi bảng điều khiển của tôi được nạp các lỗi sau đây được hiển thị:

TypeError: Cannot call method 'addListener' of undefined 

và theo đến các thử nghiệm của tôi chrome.extension.onMessageundefined

Theo trang này http://code.google.com/chrome/extensions/messaging.html Tôi sẽ có thể truy cập API chrome này từ trang của mình để như là một cái gì đó nhỏ mà tôi đang thiếu ở đây ...

+1

Tôi gặp vấn đề tương tự như @ganoro – LooPer

Trả lời

3

Xin lưu ý phương pháp chrome.extension.onRequestchrome.extension.sendRequest, như đề xuất ban đầu trong câu trả lời này, đang bị phản đối như của Chrome 33.


Bạn nên sử dụng

chrome.extension.onRequest 

thay vì

chrome.extension.onMessage 
.210

Và trong trang nền hoặc bất kỳ kịch bản mở rộng khác:

chrome.tabs.sendRequest 

thay vì

chrome.tabs.sendMessage 

(tài liệu là lỗi thời ... cảnh giác với google đội;))

+1

chrome.extension.onMessage hoạt động trong phiên bản 20 – LooPer

+0

vì vậy, cái nào là đúng? – FRD

+2

sendRequest và onRequest không được chấp nhận. – Soviut

0

Chỉ cần một bên lưu ý: trình duyệt Yandex (chủ yếu là định hướng cho người Nga) mà cũng dựa trên Chromium vẫn (như của 11/10/2012, ver. 1.0) có. * Yêu cầu các phương thức thay vì. * Thông báo. Rất cám ơn Ciprian Amariei vì đã giúp tôi tiết kiệm rất nhiều thời gian!

PS: Điều này thực sự là bình luận cho câu trả lời của Ciprian Amariei nhưng tiếc là tôi không thể để lại bình luận và tôi cho rằng thông tin này có thể rất hữu ích cho những người phát triển tiện ích mở rộng cho trình duyệt Yandex.

0

Đảm bảo bạn đang sử dụng phiên bản Google Chrome mới nhất. Các phiên bản cũ hơn không có API chrome.extension.onMessage.

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