アイデアは次のようになります... 特定のコンテンツ スクリプトが読み込まれるとすぐに、拡張機能の背景ページを呼び出すだけです。(この場合、ページが読み込まれるとき) コンテンツ スクリプトにこのようなものがあります。
var port = chrome.extension.connect({name: "screenshot"});
port.postMessage({request: "screenshot"});
port.onMessage.addListener(function(msg) {
var img = document.createElement('img');
img.src = msg.response;
document.body.appendChild(img);
});
そして、私のbackground.jsページでこのようなもの
function takeScreenshot(){
chrome.tabs.captureVisibleTab(null, function(img) {
return img;
});
}
chrome.extension.onConnect.addListener(function(port) {
console.assert(port.name == "screenshot");
port.onMessage.addListener(function(msg) {
if (msg.request == "screenshot"){
port.postMessage({response: takeScreenshot() });
}
});
});
しかし、私は運がありません...ボディに画像が表示されますが、takeScreenshotからimgを返すときに実際には画像を渡しません