私の全体的な目標は、次を使用してバックグラウンドページからスクリーンショットを撮ることでした:
http://developer.chrome.com/extensions/tabs.html#method-captureVisibleTab
それをコンテンツ スクリプトに渡すと、ページの HTML DOM を使用してスクリーンショットを分析し、好きなように切り取ることができます。
ただし、メッセージ パッシングを使用して dataUrl をコンテンツ スクリプトに戻すことができないようです。
http://developer.chrome.com/extensions/messaging.html
JSON.stringify() を試しましたが、役に立ちませんでした。
これは完全にうまくいきます:
background.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
sendResponse({imgSrc:'hello'});
}
);
コードをこれに切り替えても、何も通過しません:
background.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
chrome.tabs.captureVisibleTab(
null,
{},
function(dataUrl)
{
sendResponse({imgSrc:dataUrl});
}
)
}
);
背景ページが実際にスクリーンショットを撮っているという私の唯一の証拠は、私ができることです
chrome.tabs.captureVisibleTab(null,{},function(dataUrl){console.log(dataUrl);});
そして私は見る
"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAA....etc..."
有効な background.html にログイン
私の質問は、この URL をコンテンツ スクリプトに送信するにはどうすればよいですか?
実際に表示されているページで何も制御できないバックグラウンド ページですべてのロジックを実行したくありません。