开发截图chrome扩展

avi*_*jbi 2 javascript google-chrome google-chrome-extension

我在这里看到了很多答案,但没有一个是我要找的。我想从 chrome 扩展程序中为我第一次看到的屏幕截取屏幕截图,而无需滚动页面。并“警告”创建的文件 base64 路径。

我拥有所有正确的权限:

"permissions": [
  "activeTab",
  "tabs" ,
  "storage",
  "unlimitedStorage",
  "browsingData",
  "notifications",
  "http://*/*",
  "https://*/*",
  "file://*/*",
    "background" // added after i got the answer
],
 "background": { // added after i got the answer
    "scripts": [
        "js/background.js"
    ]
},
Run Code Online (Sandbox Code Playgroud)

在我的 manifest.json

我也有代码:

$(document).ready(function() {
    alert("1");
    chrome.tabs.captureVisibleTab(null, {}, function (image) {
      alert("2"); 
    });
});
Run Code Online (Sandbox Code Playgroud)

我一直得到 1,但我从来没有得到 2,我不知道为什么。请帮忙..

谢谢 ..

更新

这是缺失的部分(background.js)

        chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
    chrome.tabs.captureVisibleTab(
        null,
        {},
        function(dataUrl){
            sendResponse({imgSrc:dataUrl});
        }); //remember that captureVisibleTab() is a statement
    return true;
}
);
Run Code Online (Sandbox Code Playgroud)

进而 :

       chrome.tabs.captureVisibleTab(null, {}, function (image) {
      // alert("2");
            alert(response.imgSrc); 
    }); 
Run Code Online (Sandbox Code Playgroud)

Chi*_*ice 6

您不能在内容脚本中调用扩展 API。如果您真的想在内容脚本中触发此功能,请尝试使用消息传递。

请注意,tabs.captureVisibleTab() 的权限要求自 chrome rev.246766 起已更新。

扩展需要有“< all_urls >”权限,或者被授予“activeTab”权限才能使用tabs.captureVisibleTab()。

开发人员文档没有提到它。

清单文件

"permissions": [
    "activeTab",
    "tabs" ,
    "storage",
    "unlimitedStorage",
    "browsingData",
    "notifications",
    "http://*/*",
    "https://*/*",
    "file://*/*",
    "<all_urls>"
]
Run Code Online (Sandbox Code Playgroud)

尝试在后台页面中执行以下代码,屏幕截图将按预期工作。

chrome.tabs.captureVisibleTab(null,{},function(dataUri){
    console.log(dataUri);
});
Run Code Online (Sandbox Code Playgroud)

截屏

在此处输入图片说明