0

私は単純なグーグルクローム拡張機能を開発しようとしています。ページにダウンロード数(カウント)を表示し、ポップアップで表示するのはどういうことですか。

監視が必要な問題のページは、ログイン後にのみアクセスできるページです。

したがって、基本的にhtmlとjavascriptを使用して、ページからカウント数を「スクラップ」し、ポップアップに表示する必要があります。これまでのところ、拡張機能のベアボーンを作成しました。

{
  "name": "Downloads Logger",
  "version": "1.0",
  "manifest_version": 2,
  "description": "Monitors Number Of Downloads",
  "browser_action": {
    "default_icon": "icon.png"
  },
  "permissions": [
    "http://exampledownloadpage.com/loggedin/"
  ]
}

次に何をしますか?拡張機能のバックグラウンドページが必要ですか?拡張機能のドキュメントを読み、公式のGmail拡張機能を解凍して、どのように機能するかを確認しましたが、データを取得するために「フィード」を利用しているようです。誰かが私を正しい方向に向けることができますか?前もって感謝します!

4

1 に答える 1

2

browser_actionにダウンロード数のみを表示する場合は、バックグラウンドページは必要ありませんが、1分ごとにダウンロード数を監視する場合は、必要になります。ダウンロード数を取得するには、XMLHttpRequestを使用してページソースをダウンロードし、それを使用してdomに解析します。

var page = document.implementation.createHTMLDocument("");
page.documentElement.innerHTML = pageSource;  // assuming the source for the page you downloaded with httprequest is in pageSource

...そして、querySelectorのようなものを使用して、あなたが興味を持ったページのビットのテキストを取得することができます。

downloadstats = page.querySelector('.downloadstats').textContent.trim();

うまくいけば、それはあなたが始めるのに役立つでしょう。

これは、stackoverflowから担当者ポイントを取得する簡単な(エラーチェックなどがない)例です。

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4) {
        var page = document.implementation.createHTMLDocument("");
        page.documentElement.innerHTML = this.responseText;
        var score = page.querySelector('[title^="your reputation;"]').textContent.trim();
        alert('You have ' + score + ' rep points.');
    }
}
xmlhttp.open("GET", "http://stackoverflow.com", true);
xmlhttp.send();
于 2012-06-05T11:56:39.303 に答える