我正在嘗試創建一個大型頁面的屏幕截圖的Chrome擴展。chrome.tabs.captureVisibleTab捕獲錯誤的區域
這是我的一個簡單的擴展,它應該滾動並捕獲頁面的某些部分。
的manifest.json
{
"manifest_version": 2,
"name": "screenshot_test",
"version": "1.0",
"permissions": [
"tabs",
"<all_urls>"
],
"background": {
"scripts": ["background.js"]
},
"browser_action": {
"default_icon": "icon.png"
}
}
background.js
chrome.browserAction.onClicked.addListener(capture)
function capture(){
function scroll(point, callback){
chrome.tabs.executeScript({
code: 'window.scrollTo('+JSON.stringify((point.x))+','+JSON.stringify(point.y)+')',
}, callback)
}
function capturetab(){
chrome.tabs.captureVisibleTab(function(imageUri){
shots.push(imageUri);
});
}
var shots=[];
var points=[{x: 0, y: 0}, {x: 500, y: 500},{x: 1000, y: 1000}];
for (var i=0; i<3; i++) scroll(points[i], capturetab);
console.log(shots);
}
的問題是,拍攝[],imageuris陣列,包含一些相同imageuris,如果capturevisibletab捕獲同一地區的幾個像倍。
在firefox中,完全相同的代碼工作得很好,除了在firefox capturevisibletab中返回promise和callback不是強制性的。
請編輯問題爲主題:包括一個重複問題的[mcve]。對於Chrome擴展程序或Firefox WebExtensions,這通常意味着包含您的* manifest.json *以及一些背景,內容和/或彈出式腳本/ HTML。尋求調試幫助的問題(「爲什麼代碼不按我想要的方式工作?」)必須包括:(1)期望的行爲,(2)特定問題或錯誤,以及(3)重現它所需的最短代碼*在問題本身*。另請參閱:[我可以在這裏詢問什麼主題?](http://stackoverflow.com/help/on-topic)和[問]。 – Makyen