首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >captureVisibleTab在Chrome上失败,但在Vivaldi上成功

captureVisibleTab在Chrome上失败,但在Vivaldi上成功
EN

Stack Overflow用户
提问于 2020-05-08 17:00:47
回答 1查看 88关注 0票数 0

获取屏幕截图的扩展的最简单版本如下:

manifest.json

代码语言:javascript
复制
{
  "manifest_version": 2,
  "name": "Screenshot",
  "version": "20200507.1",
  "permissions":[
    "activeTab"
  ],
  "browser_action": {
    "default_popup": "popup.html"
  }
}

popup.html

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<body>
<button id="capture">Capture</button>
<script src="popup.js"></script>
</body>
</html>

popup.js

代码语言:javascript
复制
document.getElementById("capture").addEventListener('click', event => {
    chrome.tabs.captureVisibleTab(dataURI => {
        chrome.tabs.create({url: dataURI});
    });
    window.close();
});

作为一个未打包的扩展加载到Vivaldi浏览器中,它可以正常工作。打开带有活动选项卡的屏幕截图的选项卡。然而,加载到Chrome中的同一个扩展绝对没有任何作用,但没有抛出任何错误。这里少了什么?我能找到的这段代码和它们的样本代码之间唯一的区别是,这是一个弹出而不是背景脚本。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-28 21:32:32

captureVisibleTab()返回一个承诺。因此,window.close()可能会在承诺以指出形式返回wOxxOm之前关闭窗口。包括作为清单版本2的清单版本3的修订代码将在2023年逐步淘汰。

manifest.json

代码语言:javascript
复制
{
    "manifest_version": 3,
    "name": "Screenshot",
    "version": "20220828.1",
    "permissions":[
        "activeTab"
    ],
    "action": {
        "default_popup": "popup.html"
    }
}

popup.html

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<body>
<button id="capture">Capture</button>
<script src="popup.js"></script>
</body>
</html>

popup.js

代码语言:javascript
复制
document.getElementById("capture").addEventListener('click', event => 
    chrome.tabs.captureVisibleTab().then(dataURI => 
        chrome.tabs.create({url: dataURI}).then(() => 
            window.close()
        )
    )
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61684153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档