在被浏览页面加入一段代码实现这样的功能:
根据页面标题和url写入locationStorage
写入时,只写入最后10条记录
在显示历史页面,读取locationStorage把历史记录显示出来
你的问题涉及到 Same Origin Policy(同源策略),这是一个关系到隐私和安全性的问题。任何浏览器都不会给你机会让你访问 **异域** 历史网址。
但是,如果这三个页面在同一域名下,你可以使用 Javascript 的 document.cookie 来记录每次访问的网址。
我写的例子需要4个文件,url_history.js,html1.html,html2.html,html3.html(三个 html 文件内容相同),代码写在空间(hi.baidu.com/keneks/item/50699e21f9300d0c72863e4d)
复制粘贴,将 url_history.js 和其它三个 html 文件放在一起,访问任何一个页面,点击任何链接,上面会自动显示曾经访问过的页面。
历史网址以 array 形式保存在 url_history 变量中,所以 url_history[0] 为上一个,url_history[1] 为上上一个,以此类推。
<input type='button' value='点击' onclick='clickCount()' /><input type='button' value='查看当前用户点击次数' onclick='clickShow()' />
function clickCount(){
var UserName = <%=Session["UserName"]%> //aspx页面
var UserInfo = xmlDoc.createElement("UserInfo")
UserInfo.setAttribute("name", UserName)
}
function clickShow(){
var clickCount = 0
var xmlDoc = loadXml("TEST.xml")
for(var i = 0i<xmlDoc.getElementsByTagName("UserInfo").lengthi ++) {
var UserInfo = xmlDoc.getElementsByTagName("UserInfo")[i]
var UserName = UserInfo.getAttribute("UserName")
if(UserName == <%=Session["UserName"]%>){clickCount++}
}
alert("您点击了"+clickCount)
}
function loadXml (xmlFileName) {
var xmlFile = xmlFIleName
if (window.ActiveXObject) {
//IE
xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.load(xmlFile)
}
else if (document.implementation &&document.implementation.createDocument) {
//其他浏览器
xmlDoc = document.implementation.createDocument('', '', null)
xmlDoc.load(xmlFile)
}
else {
xmlDoc = null
}
return xmlDoc
}
//没测试过 你试试看