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

Этот код добавляет захваченное изображение в тело popup.html. Но я хочу, чтобы добавить изображение во всплывающее тело, я хотел бы открыть новую вкладку с помощью chrome.tabs.create ({url: "newtab.html") и добавить захваченное изображение к этому newtab.html. ('newtab.html' уже находится в папке пути).Расширение Chrome -Открыть захваченный снимок экрана в новой вкладке

Заранее спасибо

ответ

2

Существует способ я описал previosuly here.

Суть заключается в том, чтобы открыть вкладку, содержащую скрипт, и общаться с ней с помощью обмена сообщениями.

Небольшая проблема, которая возникает, заключается в том, что вы не знаете, когда только что открытая страница будет готова. Я решил, что, сделав недавно открытую страницу напрямую соприкасающейся с исходной страницей, она была неаккуратной, имея только одну глобальную переменную.

Лучшим решением было бы слушатель один выстрел событие, что-то вроде этого:

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

Кроме этого, следовать связанный ответ.