2011-05-10 57 views
1

我正在編寫Chrome的擴展程序,以顯示用戶最常訪問的3個網站。 (是的,我知道「新標籤頁」頁面已經這樣做)但是,每當我嘗試查詢用戶歷史記錄時,就會看到整個腳本關閉。無法在Chrome擴展程序中執行歷史記錄搜索

我的清單文件會包含:

{ 
    "name": "Most Visited Sites Test", 
    "description": "Show your most visited sites", 
    "version": "1.0", 
    "background_page": "background.html", 
    "app": { 
     "launch": { 
      "web_url": "http://localhost/*" 
     } 
    }, 
    "permissions": [ 
     "tabs", 
     "history", 
     "unlimitedStorage", 
     "notifications" 
    ], 
    "icons": {"128": "icon.png" }, 
    "content_scripts": [ 
     { 
      "matches": ["<all_urls>"], 
      "js": ["contentscript.js"] 
     } 
    ] 
} 

所以我相信這應該給我的後臺頁面使用歷史的能力。然而,我的背景頁面包含:

function onRequest(request, sender, sendResponse) 
{ 
    alert("Call 1"); 

    var oneWeekAgo = //Code for getting last weeks date; 
    chrome.history.search({ 
    'text': '', 
    'startTime': oneWeekAgo 
    }, 
    function(historyItems) 
    { 
     // Do stuff... 
    }); 

    alert("Call 2"); 
}; 

請求是從我contentscript.js發送

chrome.extension.sendRequest("foo"); 

運行時,「呼1」所示,但再沒有什麼與歷史和「呼叫完成2「從不顯示。什麼可能導致這種情況?我很抱歉,如果這是一個簡單的問題,但這是我第一次嘗試在合法的Chrome擴展。

回答

0

打開控制檯查看是否有任何錯誤是我總是做的第一件事(轉到擴展選項卡並單擊「background.html」)。

您的歷史呼叫是正確的,所以也許您上週的計算不是?這對我來說很有用:

chrome.history.search({text: "", startTime:(new Date()).getTime()-7*24*3600*1000}, function(items) { 
    console.log(items); 
}); 
+0

這很奇怪。我檢查了控制檯,它告訴我 (錯誤:您沒有權限使用'history.search'。請務必在清單中聲明您需要的權限。) 具體來說,我有 (「權限」 :[ \t \t 「標籤」, \t \t 「歷史」, \t \t 「unlimitedStorage」, \t \t 「通知」 \t]) – 2011-05-10 15:32:30

+0

@Mike你從background.html運行此,不是內容腳本? – serg 2011-05-10 15:37:28

+0

內容腳本向background.html發送請求,然後background.html執行chrome.history.search。 – 2011-05-10 15:47:08