javascript - Chrome 扩展程序中的历史搜索无法执行

标签 javascript google-chrome-extension browser-history

我正在为 Chrome 编写一个扩展程序,以显示用户最常访问的 3 个网站。 (是的,我知道“新选项卡”页面已经执行了此操作)但是,每当我尝试查询用户历史记录时,整个脚本似乎都会关闭。

我的 list 文件确实包含:

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

运行时,会显示“Call 1”,但不会对历史记录执行任何操作,并且永远不会显示“Call 2”。可能是什么原因造成的?如果这是一个简单的问题,我深表歉意,但这是我第一次尝试合法的 Chrome 扩展。

最佳答案

打开控制台查看是否有任何错误是我做的第一件事(转到“扩展”选项卡并单击“background.html”)。

您的历史调用是正确的,那么也许您上周的计算不正确?这对我有用:

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

关于javascript - Chrome 扩展程序中的历史搜索无法执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5944502/

相关文章:

javascript - 按下按钮时使用 Javascript 刷新 div 内容

google-chrome - list 返回 "Unrecognized manifest key ' brower_action'。”并且没有任何弹出

javascript - 检测动态加载的 iframe

javascript - 为什么我的浏览器从 Express 加载 JSON 响应?

javascript - 可以读取 iframe 的标题吗?

javascript - Chrome 扩展程序可将用户重定向到特定网址

javascript - 浏览器缓存和历史后退按钮(散列,history.js)

javascript - 如何修改 jQuery Mobile 历史后退按钮行为

javascript - 每当我执行推送状态时,Statechange 就会触发

javascript - 使用数据属性动态加载 JavaScript 小部件