我正在使用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”,但它没有。为什么呢?
答案 0 :(得分:1)
它对我有用。您可能遇到两个问题:
file://
URI运行您的函数,那么您将收到安全错误。 Chrome对此保持沉默,但Firefox报告错误。您需要将该页面放在Web服务器上并通过http://
。"\try.html"
表示标签字符后跟ry.html
,您可能是"/try.html"
。Here is a working example根据您的代码。