|
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