【发布时间】:2013-05-21 00:27:41
【问题描述】:
我在 MyDomain.com 上有两个页面。从 MyDomain.com/ 和 MyDomain.com/Foo/Bar 可见的索引视图。每个视图都有一个 ajax 调用,每个视图都使用 HTML5 History API 推送状态。
产生问题的步骤有:
- 从 MyDomain.com/ 开始(按预期工作。)
- 单击指向 MyDomain.com/Foo/Bar/ 的 ajax 链接(按预期工作。)
- 单击指向 MyDomain.com/ 的 ajax 链接(按预期工作。)
- 点击 ajax 链接到 MyDomain.com/Foo/Bar/
现在 URL 显示为 MyDomain.com/Foo/Foo/Bar/
我不想要 Foo Foo Bar。
我目前的解决方法是在 URL 的前面添加“../../../”,但这并不优雅,也不是万无一失的。另一种选择是计算目录级别的正则表达式。
有没有更好的方法来使用 History API 获取绝对 URL?
function push(updateElementID, controller, action, url)
{
if (typeof url == "undefined")
{
url = "/" + controller + "/" + action;
}
var state = {
id: updateElementID,
controller: controller,
action: action
}
history.pushState(state, null, url);
}
【问题讨论】:
标签: javascript html html5-history