Javascript 是否可以在不使用页面刷新窗口的情况下使用斜杠(/)而不是哈希(#)?
我使用“window.location.hash”将“#something”添加到URL,而不刷新页面 我想知道如何使用斜杠(/)而不是散列(#) 为什么??我有导航选项卡,我使用jQuery和Ajax动态加载数据。启用javascript后,会在URL末尾添加“something”以获取数据。禁用javascript时,它会重定向到“/something”。所以我想为两者伪造相同的URL 而不是Javascript 是否可以在不使用页面刷新窗口的情况下使用斜杠(/)而不是哈希(#)?,javascript,jquery,url,Javascript,Jquery,Url,我使用“window.location.hash”将“#something”添加到URL,而不刷新页面 我想知道如何使用斜杠(/)而不是散列(#) 为什么??我有导航选项卡,我使用jQuery和Ajax动态加载数据。启用javascript后,会在URL末尾添加“something”以获取数据。禁用javascript时,它会重定向到“/something”。所以我想为两者伪造相同的URL 而不是http://site.com/section#something->http://site.com
http://site.com/section#something
->http://site.com/section/something
谢谢。为什么不部署
它确实以
。/#/section/something
的形式为您提供URL,这应该是您所需要的。它广泛用于许多Flash/AJAX网站的搜索引擎优化考虑。你可以在你想要的哈希之后使用任何组合,但是你的问题的答案是不,如果不重新引导用户,你就无法做你要做的事情
能够在不重新定向的情况下使用URL在某些级别上是一个安全问题(你也可以更改域吗?为什么不?…看看这个兔子洞在哪里?)。例如,通过JavaScript将URL更改为:http://www.mybank.com
(为什么我的银行不使用SSL?坏银行,坏!)将是钓鱼者的梦想……所以浏览器根本不允许像这样弄乱URL……除非真的带你去那里。看看。基本上,它允许您执行以下操作:
history.pushState({}, 'New Title', 'new_page.html');
这会更新历史记录和位置栏,但不会实际加载页面。这就是你想要的,但它是HTML5的一部分,目前很少有浏览器支持它。坚持使用哈希是一个更好的主意。History.pushState(请参阅@Casey帖子中的链接,或)出现在最新版本的Safari和Firefox中,Modernizer 1.5现在测试浏览器对它的支持。我今天刚开始玩这个,它看起来正是你想要的
我意识到这对旧浏览器没有帮助;那里仍然需要某种window.location.hash技巧。为什么不试试
http://site.com/section#/something/anotherthing
否。请参阅