在chrome.extension.sendMessage回调函数之外暂时未定义变量

时间:2012-08-31 22:05:53

标签: google-chrome-extension google-chrome-devtools

我有这个奇怪的问题:

on 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')
}

on 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
}

有人可以重现这个吗?

0 个答案:

没有答案