|
31 | 31 | // @name:da Pagetual |
32 | 32 | // @name:fr-CA Pagetual |
33 | 33 | // @namespace hoothin |
34 | | -// @version 1.9.37.120 |
| 34 | +// @version 1.9.37.121 |
35 | 35 | // @description Perpetual pages - powerful auto-pager script. Auto fetching next paginated web pages and inserting into current page for infinite scroll. Support thousands of web sites without any rule. |
36 | 36 | // @description:zh-CN 终极自动翻页 - 加载并拼接下一分页内容至当前页尾,智能适配任意网页 |
37 | 37 | // @description:zh-TW 終極自動翻頁 - 加載並拼接下一分頁內容至當前頁尾,智能適配任意網頁 |
|
3497 | 3497 | debug(e); |
3498 | 3498 | } |
3499 | 3499 | } else if (this.curSiteRule.nextLinkByUrl) { |
3500 | | - let targetUrl = this.curUrl.replace(new RegExp(this.curSiteRule.nextLinkByUrl[0], "i"), this.curSiteRule.nextLinkByUrl[1]); |
| 3500 | + let urlReg = new RegExp(this.curSiteRule.nextLinkByUrl[0], "i"); |
| 3501 | + let targetUrl; |
| 3502 | + if (urlReg.test(this.curUrl)) { |
| 3503 | + targetUrl = this.curUrl.replace(urlReg, this.curSiteRule.nextLinkByUrl[1]) |
| 3504 | + } else { |
| 3505 | + if (this.curSiteRule.nextLinkByUrl[0].indexOf("&") != -1) { |
| 3506 | + urlReg = new RegExp(this.curSiteRule.nextLinkByUrl[0].replace("&", "\\?"), "i"); |
| 3507 | + } |
| 3508 | + if (urlReg.test(this.curUrl)) { |
| 3509 | + targetUrl = this.curUrl.replace(urlReg, this.curSiteRule.nextLinkByUrl[1]); |
| 3510 | + } else { |
| 3511 | + targetUrl = this.curUrl + this.curSiteRule.nextLinkByUrl[1].replace(/\$\d+/g, ""); |
| 3512 | + } |
| 3513 | + } |
3501 | 3514 | if (targetUrl !== this.curUrl) { |
3502 | 3515 | let includeSel = this.curSiteRule.nextLinkByUrl[2]; |
3503 | 3516 | let excludeSel = this.curSiteRule.nextLinkByUrl[3]; |
|
3529 | 3542 | debug(e); |
3530 | 3543 | } |
3531 | 3544 | } |
3532 | | - targetUrl = targetUrl.replace(rep, result); |
| 3545 | + targetUrl = targetUrl.replace(rep, result || ""); |
3533 | 3546 | }); |
| 3547 | + if (targetUrl.indexOf("&") != -1 && targetUrl.indexOf("?") == -1) { |
| 3548 | + targetUrl = targetUrl.replace("&", "?"); |
| 3549 | + } |
3534 | 3550 | } |
3535 | 3551 | } |
3536 | 3552 | nextLink = {href: targetUrl}; |
|
8754 | 8770 | let pageText = document.createElement("a"); |
8755 | 8771 | let pageNum; |
8756 | 8772 | pageBar.className = isHideBar ? "pagetual_pageBar autopagerize_page_info hide" : "pagetual_pageBar autopagerize_page_info"; |
8757 | | - pageBar.id = "pagetual_pageBar" + curPage; |
8758 | 8773 | pageBar.setAttribute("translate", "no"); |
8759 | 8774 | if (isPause) { |
8760 | 8775 | pageBar.classList.add("stop"); |
|
8775 | 8790 | if (openInNewTab == 1) pageText.target = "_blank"; |
8776 | 8791 | pageBar.appendChild(upSpan); |
8777 | 8792 | pageBar.appendChild(pageText); |
| 8793 | + let localPage = curPage; |
8778 | 8794 | let touched = false; |
8779 | 8795 | let touchBodyHandler = e => { |
8780 | 8796 | touched = false; |
|
8788 | 8804 | pageText.innerHTML = createHTML(pageText.innerHTML + i18n("page")); |
8789 | 8805 | pageNum = document.createElement("span"); |
8790 | 8806 | let num = ruleParser.getPageNumFromUrl(url, curPage); |
| 8807 | + localPage = num; |
8791 | 8808 | pageNum.innerHTML = createHTML(num + "<i style='font-size: 0;'> </i>"); |
8792 | 8809 | pageNum.className = "pagetual_pageNum"; |
8793 | 8810 | pageNum.title = i18n("inputPageNum"); |
|
8815 | 8832 | } else { |
8816 | 8833 | pageText.innerHTML = createHTML(pageText.innerHTML + i18n("page") + curPage + "<i style='font-size: 0;'> </i>"); |
8817 | 8834 | } |
| 8835 | + pageBar.id = "pagetual_pageBar" + localPage; |
8818 | 8836 | let preBtn = document.createElement("span"); |
8819 | 8837 | preBtn.innerHTML = createHTML("∧"); |
8820 | 8838 | preBtn.title = i18n("prevPage"); |
|
8825 | 8843 | nextBtn.title = i18n("nextPage"); |
8826 | 8844 | nextBtn.className = "nextScreen"; |
8827 | 8845 | nextBtn.style.cssText = "display: none;text-align: center;right: unset; float: left; width: 40px; background: rgba(240, 240, 240, 0.8); position: absolute; z-index: 9999999; box-shadow: rgb(0 0 0 / 50%) 0px 5px 5px; border-radius: 0 0 20px 20px; margin-top: 30px; "; |
8828 | | - let localPage = curPage; |
8829 | 8846 | preBtn.addEventListener("click", e => { |
8830 | 8847 | e.stopPropagation(); |
8831 | 8848 | e.preventDefault(); |
|
0 commit comments