这真是太神奇了,我经常看到这个工作在其他网站,但从来没有在我工作的网站。 我带来了一个新的Ajax内容,我知道history.js和历史API,我不想改变的URL,只是让浏览器caching新的HTML内容,所以当用户离开页面,并返回使用后退button,它仍然有更新的HTML。 我看到这个工作一直在其他网站没有URL更改或使用哈希#。 有没有一个让它工作的技巧,或者它是由浏览器随机决定的? 如果我不想使用URL来获取这些信息,有没有简单的select?
我正在开发一个网页,根据下一步或后面的动作,我做相应的animation,问题出现在使用pushstate的时候。 当我收到事件时,我怎么知道用户是否使用Pushstate API点击了回退或者转发历史button?还是我必须自己实现一些东西?
恐怕这可能是不可能的,但是有没有办法改变一个URL的哈希值, 而不会在浏览器的历史logging中留下条目,也没有重新加载 ? 或者做同样的事情? 就具体情况而言,我正在开发一些基本的哈希导航: //hash nav — works with js-tabs var getHash = window.location.hash; var hashPref = "tab-"; function useHash(newHash) { //set js-tab according to hash newHash = newHash.replace('#'+hashPref, ''); $("#tabs li a[href='"+ newHash +"']").click(); } function setHash(newHash) { //set hash according to js-tab window.location.hash = hashPref + newHash; //THIS IS WHERE I would […]
所以现在HTML5引入了history.pushState来改变浏览器的历史,网站开始使用这个结合Ajax而不是改变URL的片段标识符。 可悲的是,这意味着这些呼叫不能再通过onhashchange来检测。 我的问题是:有一个可靠的方法(破解?))来检测网站使用history.pushState ? 规范没有提到任何有关事件的提出(至less我找不到任何东西)。 我试图创build一个门面,并用我自己的JavaScript对象replacewindow.history ,但它根本没有任何效果。 进一步的解释:我正在开发一个Firefox插件,需要检测这些变化,并采取相应的行动。 我知道前几天有一个类似的问题,问是否听一些DOM事件是有效的,但我不想依赖这个事件,因为这些事件可能由于许多不同的原因而产生。 更新: 这里是一个jsfiddle (使用Firefox 4或Chrome 8),它显示当pushState被调用时onpopstate没有被触发(或者我做错了什么?随意改进!)。 更新2: 另一个(方面)的问题是,当使用pushState时, window.location没有被更新(但是我已经在这里读到了关于它的内容)。