2011-05-10 4 views
1

Chrome 확장 프로그램을 작성하여 가장 많이 방문한 사용자 3 곳을 표시하는 중입니다. (네, "새 탭"페이지가 이미 이것을 인식하고 있습니다.) 그러나 사용자 기록을 쿼리 할 때마다 전체 스크립트가 종료 된 것처럼 보입니다. 크롬 확장 프로그램에서 내역 검색을 수행하지 못했습니다.

{ 
    "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"] 
     } 
    ] 
} 

그래서 나는이 내 배경 페이지를 역사를 사용할 수있는 기능을 제공한다고 믿는다

내 매니페스트 파일을 포함한다. 그림은 요청을 실행하면

chrome.extension.sendRequest("foo"); 

, "1 전화"내 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"); 
}; 

를 전송하지만 아무것도 역사와 "전화로 수행되지 않습니다 :하지만, 내 배경 페이지에 포함 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'를 사용할 수있는 권한이 없습니다.) 매니페스트에 필요한 권한을 선언해야합니다. 특히, 내가 가지고 있습니다. ("permissions" [ \t \t "탭", \t \t "역사", \t \t "unlimitedStorage" \t \t "통지" \t] –

+0

@ 마이크 당신이 background.html에서이를 실행하는)가 아닌 콘텐츠 스크립트 ? – serg

+0

콘텐츠 스크립트가 background.html에 요청을 보내면 background.html이 chrome.history.search를 실행합니다. –