2013-10-15 41 views
0

我有一些现有的网址,它们会在页面加载后使用网址哈希向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

最后我做了我在问题结尾提到的内容。增加了此位内嵌JS之前调用历史插件js文件:

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

在最坏的情况我们最终的URL仍然有在最后一个尾随#,但因为它没有​​然后历史插件不会把它搞乱。