我有现有的网址,使用网址哈希为网页加载后的javascript提供额外的数据,例如 http://www.example.com/my/directory/#/foo/bar/
我正在为其他内容实现jquery.history,但还需要让这些旧网址继续有效(例如,如果某人可能已将其标记为/#...
部分)。
然而,在页面加载时,插件正在剥离域和/#之间的所有内容,例如URL最终成为: http://www.example.com/foo/bar/
这不是在IE 9中发生的,而是在Firefox和Chrome中发生。
有什么想法吗?我不认为这是插件中的错误,但我很乐意修改未经编辑的源文件以供我自己使用,如果有人建议修复不会破坏其余的功能。
一个可能的想法 - 我不再关心#之后URL中的额外数据,因此可能会在历史插件对其执行任何操作之前从URL中删除该部分。我不确定在什么时候可能,或者更具体地说,当插件在页面加载时修改URL时。
答案 0 :(得分:1)
最后,我做了我在问题末尾提到的内容。在调用history plugin js文件之前添加了这一行内联JS:
(function(){
if (document.location.hash.length !== 0) {
document.location.hash = '';
}
})();
最糟糕的是,我们最终还是在结尾处仍然有一个尾随#
,但因为它没有#/
,所以历史插件不会搞砸了。