/#停止工作的预先存在的URL

时间:2013-10-15 10:14:36

标签: history.js

我有现有的网址,使用网址哈希为网页加载后的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时。

1 个答案:

答案 0 :(得分:1)

最后,我做了我在问题末尾提到的内容。在调用history plugin js文件之前添加了这一行内联JS:

(function(){
    if (document.location.hash.length !== 0) {
        document.location.hash = '';
    }
})();

最糟糕的是,我们最终还是在结尾处仍然有一个尾随#,但因为它没有#/,所以历史插件不会搞砸了。