我有这个奇怪的问题:
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 }
有人可以重现这个吗?