You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Infinite Scrolling滚动时自动生成分页子链接问题

解决Tumblr无限滚动中分页链接重复拼接的问题

你的问题根源是Infinite Scroll未正确更新分页链接状态,导致多次加载后重复拼接页码路径,以下是几种可行的修复方案:

方案1:启用历史记录并配置核心参数

修改初始化代码,添加history和checkLastPage选项,让Infinite Scroll自动管理分页链接的更新:

window.onload = function() {
  var elem = document.getElementById('content');
  let infScroll = new InfiniteScroll(elem, {
    path: '.pagination__next',
    append: '.post',
    history: 'push', // 自动同步分页链接与历史记录,避免重复拼接
    checkLastPage: true // 检测最后一页,停止无效请求
  });
}

此方案依赖Tumblr{block:NextPage}生成的标准分页链接(如/page/2),Infinite Scroll会自动识别并更新下一页路径。

方案2:手动更新分页链接DOM

如果自动更新失效,可通过监听加载事件手动维护分页链接:

window.onload = function() {
  var elem = document.getElementById('content');
  let infScroll = new InfiniteScroll(elem, {
    path: '.pagination__next',
    append: '.post'
  });

  // 每次加载完成后替换分页链接
  infScroll.on('load', function() {
    const oldLink = document.querySelector('.pagination__next');
    if (oldLink) oldLink.remove();
    // 从新加载的内容中提取新的分页链接
    const newLink = infScroll.loaded.querySelector('.pagination__next');
    if (newLink) document.body.appendChild(newLink);
  });
}

这种方式确保页面始终只有一个有效的下一页链接,避免Infinite Scroll读取旧路径重复拼接。

方案3:直接指定分页路径模板

跳过DOM中的分页链接,直接配置Tumblr标准分页路径模板:

window.onload = function() {
  var elem = document.getElementById('content');
  let infScroll = new InfiniteScroll(elem, {
    path: '/page/{{#}}', // 用模板语法指定分页路径
    append: '.post',
    pageIndex: 1 // 设置初始页码
  });
}

此方案无需依赖{block:NextPage}生成的链接,Infinite Scroll会自动按模板生成下一页请求路径,从根源避免拼接错误。


内容的提问来源于stack exchange,提问作者diacetyl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 04:15:58