History.js:我只想更改URL,无需管理历史记录

时间:2014-02-21 20:16:21

标签: javascript html5 history.js

我正在使用HTML5在加载后更改页面的网址。这是因为真实的URL显示了我不想显示的长cacheID。我使用HTML5 History API来更改当前窗口的URL,现在用户可以在没有恼人的cacheID的情况下共享和添加URL。

这是我正在使用的代码,它在页面加载时执行:

<script type="text/javascript">
window.history.pushState(null, "Title", "/url");
</script>

执行后,我会在地址栏中看到:http://mydomain.com/url

这很好。

现在我想使用History.js,以便我的网站可以支持使用旧浏览器的用户。

我该如何解决?

首先,我包括这个:

<script src="http://browserstate.github.io/history.js/scripts/bundled/html4+html5/jquery.history.js" type="text/javascript"></script>

然后我输入了我之前使用的相同代码

<script type="text/javascript">
window.history.pushState(null, "Title", "/url");
</script>

它不起作用。因为我认为我必须创建新对象,但我不确定如何去做。任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

在我看来你忘了包含jQuery,因为你要包含一个为此构建的History.js版本。在jquery.history.js之前不包含jQuery,后者将失败。

修改

在 jquery.history.js之前包含jQuery 之后,执行window.History.pushState(null, "Title", "/url");。请注意,历史以大写字母H开头,这很重要。

请参阅我的fiddle了解如何使用History.js。我只用Chromium尝试过,但看看它是否适用于IE8。