HTML 5中的历史API

时间:2012-04-09 05:51:46

标签: html5 html5-history

我正在使用Google Chrome,我使用Dive in HMTL 5中提到的检测技术之一进行了测试,以支持History API。但是下面这段代码似乎不起作用。任何人都可以让我知道我错过了什么?

function demo()
 {
  alert("history changing");
if(window.history && history.pushState)
{
    alert("api supported");
}
else
    alert("api not supported");
for(i=0;i<20;i++)
{
    history.pushState(null,null,"\try.html");
}
}

for循环,其中我希望在浏览器的历史记录中插入url“try.html”20次,似乎不起作用。我从名为“try.html”的页面调用此函数,其中函数“demo”在页面加载时执行。页面“try.html”只有一行普通文本。我想要做的是,当用户在加载页面后,“try.html”,点击浏览器的后退按钮,他仍将保留在同一页面上,因为历史记录应该包含20个条目相同的页面,即“try.html”,但它没有。为什么呢?

1 个答案:

答案 0 :(得分:1)

它对我有用。您可能遇到两个问题:

  1. 如果您尝试从file:// URI运行您的函数,那么您将收到安全错误。 Chrome对此保持沉默,但Firefox报告错误。您需要将该页面放在Web服务器上并通过http://
  2. 进行访问
  3. 字符串"\try.html"表示标签字符后跟ry.html,您可能是"/try.html"
  4. Here is a working example根据您的代码。