问题描述
我正在尝试在chrome扩展程序中获得访问量最大的网站。我已经阅读过Chrome扩展程序开发人员文档。
当我尝试从topSites
对象获取属性chrome
时,它返回undefined
。但根据文档,自Chrome 36起可用。
即使我在topSites
中添加了访问manifest.json
的权限。
//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浏览器中的输出:
扩展名的参考