Chrome-Erweiterungs-API: chrome.tabs.captureVisibleTab auf der Hintergrundseite zum Inhaltsskript

Mein übergeordnetes Ziel war es, einen Screenshot über die Hintergrundseite zu machen, mit:

http://developer.chrome.com/extensions/tabs.html#method-captureVisibleTab

Übergeben Sie es an das Inhaltsskript, damit ich den Screenshot mit dem HTML-DOM der Seite analysieren und nach meinen Wünschen zuschneiden kann.

Es scheint jedoch nicht möglich zu sein, die dataUrl mit Message Passing an das Inhaltsskript zurückzugeben:

http://developer.chrome.com/extensions/messaging.html

Ich habe versucht, JSON.stringify (), aber ohne Erfolg.

Das funktioniert einwandfrei:

background.js

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        sendResponse({imgSrc:'hello'});
    }
);

Ich ändere den Code darauf und nichts kommt durch:

background.js

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        chrome.tabs.captureVisibleTab(
            null,
            {},
            function(dataUrl)
            {
                sendResponse({imgSrc:dataUrl});
            }
        )
    }
);

Mein einziger Beweis, dass die Hintergrundseite tatsächlich einen Screenshot macht, ist, dass ich das kann

chrome.tabs.captureVisibleTab(null,{},function(dataUrl){console.log(dataUrl);});

und ich verstehe

Daten: image / jpeg; base64, / 9j / 4AAQSkZJRgABAQAAA .... etc ...

angemeldet in background.html, die gültig ist

Meine Frage lautet: Wie kann ich diese URL an das Inhaltsskript senden?

Ich würde es vorziehen, nicht die gesamte Logik auf der Hintergrundseite auszuführen, die nichts auf der tatsächlich sichtbaren Seite steuern kann.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage