我使用History.js使用AJAX实现了我网站的搜索结果。对于HTML5浏览器,我有http://example.com/search/X6a2/3
这样的网址,在不支持历史记录API的浏览器中,它确实可以很好地回退到http://example.com/search/#X6a2/3
。
但是,如果在较旧的浏览器中打开HTML5 URL,则只要更改页面,新的哈希标记就会附加到完整的URL。 (例如http://example.com/search/X6a2/3#/X6a2/4
- 呃!)
一旦检测到非HTML5浏览器,我只需要一种干净的方法来重定向到仅支持哈希标记的版本。 window.location.replace()
似乎忽略了哈希标记。我该怎么办?
答案 0 :(得分:3)
这似乎对我有用。你确定window.replace是问题吗?
var href = "http://example.com/search/X6a2/3";
var idx = href.indexOf('search', 0);
var new_href = href.slice(0,idx+7) + "#" + href.slice(idx+7);
alert(new_href);
window.location.replace(new_href);