2014-10-07 14 views
8
chrome.tabs.query({ 
    active: true, 
    currentWindow: true 
    }, 
    function (tabs) { 
    chrome.tabs.captureVisibleTab(null 
     ,{ format: "png"}, 
     function (src) { 
      $('body').append("<img src='" + src + "'>" + tabs[0].url + "</img>");//appends captured image to the popup.html 
     } 
    ); 
}); 

Ten kod dołącza przechwycony obraz do treści popup.html. Ale to, czego chcę, to dołączenie obrazu do podręcznego ciała Chciałbym otworzyć nową kartę za pomocą chrome.tabs.create ({url: "newtab.html") i dołączyć przechwycony obraz do tego pliku newtab.html. "newtab.html" jest już w folderze ścieżek).Rozszerzenie Chrome - otwórz przechwycony zrzut ekranu w nowej karcie

góry dzięki

Odpowiedz

2

Jest sposób opisałem previosuly here.

Celem jest otwarcie karty zawierającej skrypt i komunikowanie się z nim za pomocą wiadomości.

Niewielki problem, który powstaje, polega na tym, że nie wiadomo, kiedy nowo otwarta strona jest gotowa. Rozwiązałem to, sprawiając, że nowo otwarta strona kontaktuje się ze stroną w tle, ale była niechlujna z jedną globalną zmienną.

Lepszym rozwiązaniem byłoby słuchacz jednorazowym wydarzeniem, coś takiego:

// Execute this code from the background page, not the popup! 
function openScreenshot(src){ 
    chrome.tabs.create(
    { url: chrome.runtime.getURL("newtab.html") }, 
    function(tab) { 
     chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) { 
     // If the request is expected and comes from the tab we just opened 
     if(message.getScreenshot && sender.tab.id == tab.id) { 
      sendResponse(src); 
      // Ensure we're only run once 
      chrome.runtime.onMessage.removeListener(arguments.callee); 
     } 
     }); 
    } 
); 
} 

Poza tym, wykonaj połączoną odpowiedź.

Powiązane problemy