我有这个奇怪的问题:

content_script

function getText(){
    var = text;
    chrome.extension.sendMessage({}, function(response){
        text = response.data;
    });
    return text;
}

if (getText()) {
    console.log('OK')
} else{ 
    console.log('Not OK')
}

background.js

var text = 'tests';

chrome.extension.onMessage.addListener(function(request, sender, sendResponse){
    sendResponse( { 'data': text } );
})

return text 行放置断点,然后在控制台上获得 OK .

禁用断点,你只得到 Not OK .

似乎是一些时间问题,比如 text 在返回时没有被定义,除非你通过使用断点给Chrome一些时间 .

manifest.json的:

{
  ...
  "permissions": ["tabs"],
  "background": {
    "scripts": ["js/background.js"]
  },
  "content_scripts": [ 
        {
            ...
            "js": [ "js/content_script.js"], 
            "run_at": "document_end"
    } 
  ],
  "manifest_version": 2
}

有人可以复制这个吗?