Chrome onMessage无效(?)

时间:2014-01-25 21:12:41

标签: google-chrome-extension

我已经阅读了Chrome中的onMessage.addListener方法,将一些数据从扩展程序传递到脚本。我现在拥有的:
popup.js

window.onload = function(){
  document.getElementById('searchButton').onclick = searchText;
};
function searchText(){
  var search = document.getElementById('searchText').value; // f.ex "123"
  if(search){
    chrome.tabs.query({active:true,currentWindow:true},function(tabs){
      chrome.tabs.executeScript(tabs[0].id,{file:search.js});
      chrome.tabs.sendMessage(tabs[0].id,{method:'search',searchText:search});
    });
  }
}

search.js

chrome.runtime.onMessage.addListener(function(message,sender,sendResponse){
  alert('text');
});

但是,警告('text')永远不会被触发。有什么问题?

1 个答案:

答案 0 :(得分:1)

您应引用“search.js”并将chrome.tabs.sendMessage来电置于chrome.tabs.executeScript的回调中:

function searchText(){
    var search = document.getElementById('searchText').value; // f.ex "123"
    if (search) {
        chrome.tabs.query({active:true,currentWindow:true}, function(tabs) {
            chrome.tabs.executeScript(tabs[0].id, {
                file: 'search.js'
            }, function() {
                chrome.tabs.sendMessage(tabs[0].id, {
                    method: 'search',
                    searchText: search
                });
            });
        });
    }
}

如果此建议无效,请inspect the popup并查找错误消息。