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

此代碼會將捕獲的圖像附加到popup.html的正文中。但我想要的是將圖像附加到彈出的主體,我想用chrome.tabs.create({url:「newtab.html」)打開新標籤,並將捕獲的圖像追加到這個newtab.html。 'newtab.html'已經在路徑文件夾中)。Chrome瀏覽器擴展程序 - 在新標籤頁中打開捕獲的屏幕截圖

在此先感謝

回答

2

還有就是我previosuly here描述的方式。

要點是打開包含腳本的選項卡,並使用消息傳遞與它進行通信。

出現的一個小問題是,您不知道新打開的頁面何時準備就緒。我通過讓新打開的頁面自己接觸背景頁面來解決這個問題,但是僅僅有一個全局變量就很sl sl。

更好的解決方案將是一個一次性的事件監聽器,這樣的事情:

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

其他,跟隨鏈接的答案。

相關問題