我正在开发chrome扩展程序,它将取代新的选项卡UI 我能够检索已安装的应用信息。 但是我无法检索访问量最大且最重要的cloed标签信息..
我的manifest.json
{
"name": "Cloud Tab",
"version": "1.0",
"description": "New Tab with cloud UI.",
"background_page": "background.html",
"permissions": [ "tabs","management","topSites",
"chrome://favicon/"],
"chrome_url_overrides": {
"newtab": "CloudTab.html"
}
}
我的CloudTab.html页面的脚本标记包含
chrome.topSites.get(function(info){
for(var i=0;i<info.length;i++) {alert(info[i].url);}
});
但是我收到错误&gt; 未捕获的TypeError:无法调用未定义的方法'get' 我已经提到谷歌的api,但没有运气 我正在运行chrome的13.0.782版本 有什么建议怎么办?
答案 0 :(得分:2)
我尝试过这种方式并且在 chrome 37
中工作function onAnchorClick(event) {
chrome.tabs.create({ url: event.srcElement.href });
return false;
}
function buildPopupDom(mostVisitedURLs) {
var popupDiv = document.getElementById('mostVisited_div');
var ol = popupDiv.appendChild(document.createElement('ol'));
for (var i = 0; i < mostVisitedURLs.length; i++) {
var li = ol.appendChild(document.createElement('li'));
var a = li.appendChild(document.createElement('a'));
a.href = mostVisitedURLs[i].url;
a.appendChild(document.createTextNode(mostVisitedURLs[i].title));
a.addEventListener('click', onAnchorClick);
}
}
chrome.topSites.get(buildPopupDom);
<!DOCTYPE html>
<html>
<body>
<h2>Most visited links</h2>
<div id="mostVisited_div"></div>
<script src="popup.js"></script>
</body>
</html>
&#34; chrome_url_overrides&#34;:{
&#34; newtab&#34;:&#34; CloudTab.html&#34;
}
击>
"permissions": [
"tabs",
"topSites",
"http://*/*",
"https://*/*"
],
"browser_action": {
"default_icon": "icon_32.png",
"default_popup": "popup.html"
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["popup.js"]
}]
答案 1 :(得分:1)
要使用此API,您的Chrome版本必须大于或等于19。 请参阅Google Chrome扩展程序“扩展程序中的新功能”页面:http://code.google.com/chrome/extensions/whats_new.html#19
答案 2 :(得分:0)
答案 3 :(得分:0)
大多数Chrome API方法都是异步的。所以你需要做的是传递一个回调函数。
getTopSites: function(callbackfunc) {
chrome.topSites.get (function(url_list) {
for(var i=0;i<url_list.length;i++) {callbackfunc(url_list[i]);}
});
}
然后您可以使用回调函数调用它,如下所示:
getTopSites(function(url){alert(url);});
请原谅我上面提到的任何语法错误。