我正在尝试创建一个大型页面的屏幕截图的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