()
| 1601 | |
| 1602 | // 自动无缝翻页 |
| 1603 | function pageLoading() { |
| 1604 | if (curSite.SiteTypeID === 0 || !curSite.pager) return |
| 1605 | if (curSite.pager.type === undefined) curSite.pager.type = 1; // 默认翻页模式 1 |
| 1606 | if (curSite.pager.scrollD === undefined) curSite.pager.scrollD = 2000; // 默认翻页触发线 2000 |
| 1607 | if (curSite.pager.interval === undefined) curSite.pager.interval = 500; // 默认间隔时间 500ms |
| 1608 | /*if (curSite.pager.replaceE === undefined) { // 如果 replaceE 不存在,则默认替换 nextL |
| 1609 | if ((curSite.pager.type === 1 || curSite.pager.type === 3 || curSite.pager.type === 6) && curSite.pager.nextL && typeof curSite.pager.nextL !== 'function' && curSite.pager.nextL.search(/^js;/i) !== 0) { |
| 1610 | curSite.pager.replaceE = curSite.pager.nextL |
| 1611 | } |
| 1612 | }*/ |
| 1613 | //console.log(curSite) |
| 1614 | curSite.pageUrl = ''; // 下一页URL |
| 1615 | windowScroll(function (direction, e) { |
| 1616 | // 下滑 且 未暂停翻页 且 SiteTypeID > 0 时,才准备翻页 |
| 1617 | if (direction != 'down' || !pausePage || curSite.SiteTypeID == 0) return |
| 1618 | |
| 1619 | // 翻页模式 5 且为框架内时,要判断顶层是否通过页码暂停翻页了 |
| 1620 | if (curSite.pager.type == 5 && self != top && window.top.document.xiu_pausePage == false) return |
| 1621 | |
| 1622 | let scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop, |
| 1623 | scrollHeight = window.innerHeight || document.documentElement.clientHeight, |
| 1624 | scrollD = curSite.pager.scrollD; |
| 1625 | // <<<<< 翻页类型 3(依靠 [基准元素] 与 [浏览器可视区域底部] 之间的距离缩小来触发翻页)>>>>> |
| 1626 | if (curSite.pager.type === 3) { |
| 1627 | if (!curSite.pager.scrollE) { // 当 scrollE 未指定时 |
| 1628 | if(curSite.pager.replaceE) { // 如果指定了 replaceE,则默认 scrollE 为 replaceE |
| 1629 | curSite.pager.scrollE = curSite.pager.replaceE; |
| 1630 | } else { // 如果 replaceE 也未指定,则默认 scrollE 为 nextL |
| 1631 | curSite.pager.scrollE = curSite.pager.nextL; |
| 1632 | } |
| 1633 | } |
| 1634 | let scrollE = getOne(curSite.pager.scrollE); |
| 1635 | //console.log(scrollE.offsetTop, scrollE.offsetTop - (scrollTop + scrollHeight), scrollD, scrollTop + scrollHeight, curSite.SiteTypeID) |
| 1636 | if (scrollE.offsetTop - (scrollTop + scrollHeight) <= scrollD) {intervalPause(); checkURL(getPageE);} |
| 1637 | |
| 1638 | } else if (document.documentElement.scrollHeight <= scrollHeight + scrollTop + scrollD) { |
| 1639 | // <<<<< 翻页类型 1(由脚本实现自动无缝翻页)>>>>> |
| 1640 | if (curSite.pager.type === 1) { |
| 1641 | intervalPause(); checkURL(getPageE); |
| 1642 | |
| 1643 | // <<<<< 翻页类型 2(网站自带了自动无缝翻页功能,只需要点击下一页按钮即可)>>>>> |
| 1644 | } else if (curSite.pager.type === 2) { |
| 1645 | let autopbn = getOne(curSite.pager.nextL); |
| 1646 | if (!autopbn) return |
| 1647 | if (curSite.pager.isHidden && isHidden(autopbn)) return // 如果 isHidden = true,那么需要判断元素是否隐藏 |
| 1648 | if (curSite.pager.nextText) { |
| 1649 | //console.log(curSite.pager.nextText, autopbn.innerText, autopbn) |
| 1650 | // 按钮文本,当按钮文本 = 该文本时,才会点击按钮加载下一页 |
| 1651 | if (autopbn.innerText === curSite.pager.nextText) {autopbn.click(); pageNumIncrement();} |
| 1652 | } else if (curSite.pager.nextTextOf) { |
| 1653 | // 按钮文本的一部分,当按钮文本包含该文本时,才会点击按钮加载下一页 |
| 1654 | if (autopbn.innerText.indexOf(curSite.pager.nextTextOf) > -1) {autopbn.click(); pageNumIncrement();} |
| 1655 | } else if (curSite.pager.nextHTML) { |
| 1656 | // 按钮内元素,当按钮内元素 = 该元素内容时,才会点击按钮加载下一页 |
| 1657 | if (autopbn.innerHTML === curSite.pager.nextHTML) {autopbn.click(); pageNumIncrement();} |
| 1658 | } else { |
| 1659 | intervalPause(); |
| 1660 | // 如果没有指定按钮文字就直接点击 |
no test coverage detected