0

我在 Windows 10 v1703 上使用 Edge,构建 15063.296。文档 ( https://docs.microsoft.com/en-us/microsoft-edge/extensions/api-support/supported-apis ) 指出 API tabs.captureVisibleTab 可用。

但是当我在后台脚本中使用它时,我收到以下错误:

Edge 不支持 API 调用“tabs.captureVisibleTab”。

代码是:

browser.tabs.captureVisibleTab(currentTab.windowId, {format: "png"}, function (data) {});

我错过了什么吗?

更新:

这是我的清单文件(从 Chrome 移植):

{
"author": "Evgeny Suslikov",
"background": {
    "page": "background.html",
    "persistent": true
},
"browser_action": {
    "default_icon": {
        "19": "images/sss_19.png"
    },
    "default_title": "FireShot - Capture page",
    "default_popup": "fsPopup.html"
},
"commands": {
    "last-used-action": {
        "suggested_key": {
            "default": "Ctrl+Shift+Y",
            "mac": "Command+Shift+Y"
        },
        "description": "__MSG_options_label_last_action_hotkey__"
    }
},
"default_locale": "en",
"description": "__MSG_application_description__",
"icons": {
    "16": "images/sss_16.png",
    "32": "images/sss_32.png",
    "48": "images/sss_48.png",
    "128": "images/sss_128.png"
},
"Key": "B5SSrXXpDZAoT8SQ4vAzNeTQ1tBC2Z24nx+hHZXfykmVYfMy5aOwPkf0Hbt7SXlKbprwV0GwrYgCwIDAQAB",
"manifest_version": 2,
"name": "__MSG_application_title__",
"offline_enabled": true,
"optional_permissions": [
    "tabs",
    "<all_urls>",
    "downloads"
],
"options_page": "fsOptions.html",
"permissions": [
    "activeTab",
    "tabs",
    "contextMenus",
    "nativeMessaging"
],
"short_name": "FireShot",
"version": "0.98.92",
"web_accessible_resources": [
    "images/*.gif"
],
"-ms-preload": {
    "backgroundScript": "backgroundScriptsAPIBridge.js",
    "contentScript": "contentScriptsAPIBridge.js"
},

"content_scripts": [{
    "matches": ["<all_urls>"],
    "js": ["scripts/fsUtils.js", "scripts/fsSelection.js", "scripts/fsLinks.js", "scripts/fsContent.js"]
}]
}

在我的 fsBackground.js 页面中,我进行了调用:

     browser.tabs.captureVisibleTab(windowId, {format: "png"}, function (data) {});

我收到以下错误:点击查看屏幕截图...

4

1 回答 1

1

从 Edge 15 开始支持该功能 。在以前的版本中,它仍然不受支持,尽管文档中的说法不同。

确保下载最新版本的Microsoft Edge Extension Toolkit并使用它重新生成桥文件。

您可以查看生成的 backgroundScriptsAPIBridge.js 文件以了解发生了什么变化。

以前的版本(不支持):

captureVisibleTab(windowId, options, callback) {
    bridgeLog.LogUnavailbleApi("tabs.captureVisibleTab");
}

新版本(支持):

captureVisibleTab(windowId, options, callback) {
    bridgeLog.DoActionAndLog(() => {
        myBrowser.tabs.captureVisibleTab.apply(null, arguments);
    }, "tabs.captureVisibleTab");
}
于 2017-07-18T16:39:16.547 回答