2014-10-07 13 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 
     } 
    ); 
}); 

Questo codice aggiunge l'immagine catturata nel corpo di popup.html. Ma quello che voglio è l'istanza di accodare l'immagine al corpo del popup vorrei aprire una nuova scheda usando chrome.tabs.create ({url: "newtab.html") e aggiungere l'immagine catturata a questo newtab.html. 'newtab.html' è già nella cartella path).Estensione Chrome: apri la schermata catturata in una nuova scheda

Grazie in anticipo

risposta

2

C'è un modo che ho descritto previosuly here.

L'elenco consiste nell'aprire una scheda che contiene uno script e comunicare con esso utilizzando la messaggistica.

Un piccolo problema che si pone è che non si sa quando la pagina appena aperta è pronta. Ho risolto questo problema rendendo la pagina appena aperta il contatto con la pagina di sfondo da sola, ma era sciatta con solo una variabile globale.

Una soluzione migliore sarebbe un ascoltatore one-shot evento, qualcosa di simile:

// 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); 
     } 
     }); 
    } 
); 
} 

Oltre a questo, seguire la risposta collegata.

Problemi correlati