chrome.topSites 在 Microsoft Edge (Chromium) 中返回未定义

chrome.topSites returning undefined in Microsoft Edge (Chromium)

我正在尝试在我的 chrome 扩展程序中获取访问量最大的网站。我已经阅读了 Chrome 扩展开发人员文档。

当我尝试从 chrome 对象获取 属性 topSites 时,它返回 undefined。但根据文档,它自 Chrome 36.

以来可用

甚至我在 manifest.json.

中添加了访问 topSites 的权限

//Load top sites
function getTopSites() {
  chrome.topSites.get((top) => {
    console.log(top);
  });
}

getTopSites()

当我打印 chrome 对象时,我什么也没找到 属性 topSites。但是文档提到 topSites 可用。

//Load top sites
function getTopSites() {
  console.log(chrome);
};

getTopSites()

在 Microsoft Edge 中输出

"permissions": [
        "activeTab",
        "storage",
        "topSites"
    ]

我正在尝试在浏览器的控制台中控制输出。

谁能告诉我这是什么问题?

我尝试在 MS Edge Chromium 浏览器版本 85.0.564.51

中使用 chrome.topSites 进行测试

我发现它工作正常。

我建议您尝试在 html 文件而不是控制台中显示它。

我用下面的文件和代码做了一个测试扩展。

popup.html

<!DOCTYPE HTML>
<html>
  <body>
    <h2>site list</h2>
    <div id='urls'></div>
    <script src='popup.js'></script>
  </body>
</html>

popup.js

function top_site(urls)
{   
    var url= document.getElementById('urls');
    for (var i = 0; i < urls.length; i++) 
    {
        url.innerHTML += urls[i].url + "<br>";      
    }
}

chrome.topSites.get(top_site);

manifest.json

{
  "name": "sitelist",
  "version": "101",
  "description": "display site list",
  "permissions": ["topSites"],
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "manifest_version": 2
}

Edge 浏览器中的输出:

扩展参考:

Top sites sample Extensions