문서는 여기에 끔찍한 보인다 http://code.google.com/chrome/extensions/messaging.html크롬 확장 sendMessage 첨부
내가 페이지에 텍스트 영역이있는 경우 단순히 pageIcon을 보여, 내 콘텐츠 스크립트를합니다. (jQuery를 사용하여)
내 content.js이 작업을 수행합니다 :
$('textarea').each(function() {
chrome.extension.sendMessage({greeting: "hello"}, function(response) {
console.log(response);
});
});
그런 다음 내 background.js이 있습니다 매우 간단해야
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse) {
chrome.pageAction.show(sender.tab.id);
}
});
합니다. 텍스트 영역이 있으면 아이콘을 표시하십시오.
샘플 코드에서 모든 종류의 변형을 시도했지만 아무런 효과가 없습니다. 내가 얻은 것은 :
Port error: Could not establish connection. Receiving end does not exist.
콘솔에 있습니다.
내가 잘못 가고있는 아이디어가 있습니까?
문서는 일반적으로 우수해야한다. 설명서를 제대로 읽지 못했습니다. ['chrome.extension.onmessage'] 이벤트 리스너 (http://code.google.com/chrome/extensions/extension.html#event-onMessage)는 하나의 매개 변수 만 수신합니다. 객체 'request','sender','sendResponse'를 포함하고 있습니다. (이후 크롬 20, ['onRequest'와'sendRequest'는'onMessage'와'sendMessage'로 대체되었습니다.] (http://stackoverflow.com/a/11412113). 이것은 아마도 오류의 원인이 아닙니다. onMessage 이벤트 리스너가 연결되어 있는지 확인하십시오 (즉, 오류가 발생하지 않았습니까)? –
onMessage를 onRequest로 변경하고 다시 시도하십시오. 오류가 계속되면 백그라운드 스크립트의 콘솔 로그를 살펴보아야합니다. (Extensions -> Inspect Views : ***에서 스크립트가 있어야하고 jusc lick을 실행하고 콘솔로 이동하여 오류를 확인하십시오. message) –