我在 MyDomain.com 上有两个页面。从 MyDomain.com/ 和 MyDomain.com/Foo/Bar 可见的索引视图。每个视图都有一个 ajax 调用,每个视图都使用 HTML5 History API 推送状态。
有产生问题的步骤:
- 从 MyDomain.com/ 开始(按预期工作。)
- 单击指向 MyDomain.com/Foo/Bar/ 的 ajax 链接(按预期工作。)
- 单击指向 MyDomain.com/ 的 ajax 链接(按预期工作。)
- 单击指向 MyDomain.com/Foo/Bar/ 的 ajax 链接
现在 URL 显示为 MyDomain.com/ Foo/Foo /Bar/
我不想要 Foo Foo 酒吧。
我目前的解决方法是在 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);
}