【问题标题】:Processing segments of a URL on click with javascript使用 javascript 在点击时处理 URL 的片段
【发布时间】:2016-11-11 04:41:16
【问题描述】:

我目前正在构建一个 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的sn-p

$(wrapper).on("click", options.link, function(e) {
e.preventDefault();
var linkPath = $(this).attr('href').split("/").pop();
window.location = '#' + linkPath;
});

【问题讨论】:

  • window.location.hash 也许?

标签: javascript ajax url pagination segments


【解决方案1】:

呃,不知道你是不是这个意思,但是:

if (url.charAt(url.length - 1) !== '/') url += '/'

您可以使用window.location.href 获取完整的当前网址 WIndow.location 是一个对象,因此在这种情况下,请始终尝试单独更新 hash 或 href 或 querypart 以获得最干净的结果。

【讨论】:

  • 谢谢,是的,这是我一直在尝试做的事情,但我不确定它适合流程的哪个位置,而且它似乎破坏了脚本在阻止默认设置时停止点击分页链接时没有任何动作。
  • 您是否尝试过按照 gcampbell 的建议使用 window.location.hash = '#' + linkPath?它将防止以www.mysite.com/#p10 结束。
  • 谢谢,虽然它没有改变任何东西。
猜你喜欢
  • 2011-09-23
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2016-04-20
  • 1970-01-01
  • 2014-05-27
  • 2012-09-13
  • 2014-04-28
相关资源
最近更新 更多