【问题标题】:window.history.pushState to localhost/MySitewindow.history.pushState 到 localhost/MySite
【发布时间】:2012-06-23 17:03:24
【问题描述】:

我使用 pushState 更改为 URL 以在单击我网站中的图像时操纵浏览器地址栏。

在开发环境中工作时如何将其更改回主页。 例如:我的地址栏有这个网址:http://localhost/MySite 单击图片后,我将地址栏更改为:http://localhost/MySite/pic/123 与 window.history.pushState.

问题是 - 在开发环境中,我无法使用

window.history.pushState(obj, title , '/');

因为斜线 ('/') 将我带到 http://localhost/

我尝试了“../”,但它仍然不起作用 和 window.history.back() 都没有。

有什么建议吗?

【问题讨论】:

  • 浏览器怎么知道你的“root”是/MySite/?要测试不同的站点,我建议使用不同的端口。或者,当您只想快速解决问题时,使用.htaccess 将根目录重写为MySite
  • 谢谢。我认为这会是更优雅的方式。我通过在开发环境中将根更改为 /MySite/ 解决了这个问题。
  • 我还要说,尝试使用 mod_rewrite 调整 .htaccess。或者加一个“?”在开发中的“/”之前。比你留在你的目录中,它也会改变状态。

标签: javascript html


【解决方案1】:

使用 location.pathname 和正则表达式或其他东西来获取基本路径

var viewingImagePattern = /\/pic\/\d+$/;
var rootPath = location.pathname.replace(viewingImagePattern, "/");
window.history.pushState(obj, title , rootPath);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    相关资源
    最近更新 更多