5

インストールされたアプリ情報を取得できる新しいタブUIを置き換えるChrome拡張機能を開発しています。ただし、最も訪問された、最近の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);}
  });

しかし、エラーが発生します> Uncaught TypeError:undefinedのメソッド'get'を呼び出すことができません これについてはGoogleのAPIを参照しましたが、Chromeのバージョン13.0.782を実行している運がありません。

4

4 に答える 4

2

私はこの方法を試しましたが、chrome 37で動作しています

popup.js

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);

popup.html

<!DOCTYPE html>
<html>
  <body>

    <h2>Most visited links</h2>
    <div id="mostVisited_div"></div>
    <script src="popup.js"></script>
  </body>
</html>

マニフェスト.json

"chrome_url_overrides": { "newtab": "CloudTab.html" }

"permissions": [
        "tabs",
        "topSites",
        "http://*/*",
        "https://*/*"
  ],            
"browser_action": {
        "default_icon": "icon_32.png",
        "default_popup": "popup.html"
  },
 "content_scripts": [{
    "matches": ["<all_urls>"],
    "js": ["popup.js"]
 }]
于 2014-10-14T06:40:21.793 に答える
1

この API を使用するには、Chrome のバージョンが 19 以上である必要があります

于 2012-07-17T03:31:18.530 に答える
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);});

上記で作成した構文エラーをお許しください..

于 2012-07-08T07:23:39.813 に答える
0

バックグラウンド ページでonRemovedイベントのリスナーを使用して閉じたタブを追跡し、いくつかのメッセージで情報を要求できます。

于 2012-07-05T13:38:07.950 に答える