2012-06-03 43 views
0

我試着開發一個簡單的Google Chrome擴展程序。它的功能是顯示頁面上的下載次數(計數)並將其顯示在彈出窗口中。將來自外部頁面的文本片段導入Google Chrome擴展程序

有問題需要被監視的頁面是隻能acessed登錄後的頁面。

所以我需要從頁面基本上是用HTML和JavaScript來「邊角料」的計數值,並在顯示它一個彈出。到目前爲止,我已經創建了exntension的準系統:

{ 
    "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擴展,並嘗試瞭解它是如何工作的,但它似乎利用'feeds'來獲取它的數據。任何人都可以指引我走向正確的方向嗎?先謝謝你!

回答

2

如果你只想在browser_action中顯示下載的數量,那麼你不需要一個背景頁面,但是如果你想每隔一分鐘左右監視下載量,那麼你會的。 要獲得的下載次數,你可以使用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(); 

希望這會讓你開始。

這裏有一個簡單(沒有錯誤檢查或什麼不可以),例如,從計算器得到您的代表處點.....

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(); 
+0

確實爲https網頁也工作? – Hirvesh

+0

是的,它可以使用https。 – PAEz

相關問題