我目前正在构建一个ajax分页,它将页码加载到URL中并允许历史记录。分页本身工作并加载 DOM 中的下一项。但是,我遇到了一些依赖于原始URL的问题。我正在使用表达式引擎,它可以动态创建页面和分页的链接,例如,可以带或不带尾部斜杠;
www.mysite.com/category/entry/title
或
www.mysite.com/account/user/1/
我让 ajax 分页工作的方法是在呈现的分页链接的最后一段之前向 url 添加一个"#",这会触发下一页由 ajax 加载。
分页链接是绝对路径,我无法控制。我已经告诉脚本拆分 URL,并将单击链接中的"#"和最后一个片段添加到现有 URL。这呈现为;
www.mysite.com/account/user/1/#p10
并且 Ajax 分页工作正常。但是,如果没有尾部斜杠,则呈现为;
www.mysite.com/category/entry/title#p10
无法加载正确的页面
我正在努力创建一个条件,在添加拆分链接之前在原始 URL 的末尾添加一个"/"(如果尚不存在)。
除此之外,我还尝试在代码中包含"/#",但随后将链接呈现为;
www.mysite.com/#p10
缺少 URL 的其余部分
下面是我正在使用的javascript片段
$(wrapper).on("click", options.link, function(e) {
e.preventDefault();
var linkPath = $(this).attr('href').split("/").pop();
window.location = '#' + linkPath;
});
不确定这是你的意思,但是:
if (url.charAt(url.length - 1) !== '/') url += '/'
您可以使用window.location.href
获取完整的当前网址WIndow.location是一个对象,所以在这种情况下,总是尝试单独更新哈希或href或查询部分以获得最干净的结果。