2012-06-04 236 views
-2
document.addEventListener('DOMContentLoaded', function() { 
    displayRecentUrls("recentUrls"); 
}); 

function displayRecentUrls(divName) { 
    var popup = document.getElementById(divName); 
    var ul = document.createElement("ul"); 
    popup.appendChild(ul); 
    var microsecondsPerWeek = 1000 * 60 * 60 * 24 * 7; 
    var oneWeekAgo = (new Date).getTime() - microsecondsPerWeek; 
    history.search({ 
     'text': '',    
     'startTime': oneWeekAgo 
    }, 
    function(historyItems) { 
     for (var i = 0; i < historyItems.length; ++i) { 
     var url = historyItems[i].url; 
     var li = document.createElement("li"); 
     ul.appendChild(li); 
     var a = document.createElement("a"); 
     a.href = url; 
     a.appendChild(document.createTextNode(url)); 
     li.appendChild(a); 
     } 

    }); 
} 

我写了上面的代码来生成一周的浏览记录。这是行不通的。我是Javascript新手,所以我可能犯了一个愚蠢的错误。Javascript历史记录无效

+0

您能否提供更多信息?你是否收到任何错误?有没有输出?您可以使用Chrome中的Web开发者控制台或Firefox中的Firebug检查错误。 – Hacknightly

+0

这个愚蠢的错误并没有更详细地描述这个问题。 – 2012-06-04 19:19:11

+0

“历史”对象没有“搜索”方法。 – sachleen

回答

1

据我所知,您无法获取浏览器历史记录。但是,您可以执行的操作是查看用户是否访问过某些URL。这是example

如果您只想返回一页,document.referrer会为您提供用户来自的页面。

+0

以及我的目标是抓住我自己的浏览历史记录,并分析我去某​​些网站的频率。 –

+0

+1,这个链接有趣的策略,但我不认为它适用于大多数现代浏览器。 (铬/ IE模拟一路下降到怪癖模式IE7不改变风格,除非通过该页面点击链接) – Snuffleupagus

+0

@TerryLiYifeng你将无法使用JS做到这一点。你会想为你的浏览器编写一个插件。有相当多的Chrome扩展可以完成这项工作,例如[这一个](https://chrome.google.com/webstore/detail/ejifodhjoeeenihgfpjijjmpomaphmah?hl=en)。 – sachleen