2013-09-16 3 views
0

Я пытаюсь создать расширение, которое взаимодействует с внутренним приложением, и я смотрю на documentation для внешнего сообщения, но всякий раз, когда я пытаюсь получить доступ к chrome.runtime.onMessageExternal.addListener, я получаю сообщение об ошибке chrome.runtime.onMessageExternal. не определено. То же самое для onConnectExternalChrome Extension - onMessageExternal undefined

манифеста, JSON

{ 
    "manifest_version": 2, 

    "name":   "My Extension", 
    "description": "My Desc", 
    "version":  "0.2", 

    "externally_connectable": { 
     "matches": [ 
      "http://*.mysite.com/*" 
     ] 
    }, 

    "author": "Aaron Scherer", 

    "content_scripts": [ 
     { 
      "matches": [ 
       "http://*.mysite.com/*" 
      ], 
      "js":  ["js/script.js"] 
     } 
    ] 
} 

JS/script.js

chrome.runtime.onMessageExternal.addListener(
    function(request, sender, sendResponse) { 
     debugger; 
     console.debug(request ); 
     console.debug(sender); 
     console.debug(sendResponse ); 
}); 

-х JS сайт

chrome.runtime.sendMessage('myextid', { test: 'test' }); 

ответ

4

chrome.runtime.onMessageExternal доступен только на исходной странице, а не в скрипте содержимого. Если вы хотите использовать этот api для обсуждения сценариев контента, вы можете передать сообщения через фоновый рисунок.

Другим вариантом является использование стандарта window.postMessage. Если вы установили прослушиватель для 'message' с window.addEventListener в свой скрипт контента, вы можете получать сообщения, отправленные со страницы, и наоборот.