(doc, loadmoreBtn)
| 12006 | const loadmoreReg = /^\s*((点击?)?(这里)?((看|显示|加载|展开)(更多|剩余)|继续加载)|(點擊?)?(這裡)?((看|顯示|加載|展開)(更多|剩餘)|繼續加載)|load\s*more|もっと読み込む)[\.…▼\s\d%]*$/i; |
| 12007 | const defaultLoadmoreSel = ".loadMore,.LoadMore,[class^='load-more'],[class*=' load-more'],.show-more,button.show_more,button[data-testid='more-results-button'],#dataMoreBtn,#btn_preview_remain,.view-more-btn"; |
| 12008 | function getLoadMore(doc, loadmoreBtn) { |
| 12009 | if (!loadmoreBtn || !getBody(doc).contains(loadmoreBtn) || /less/.test(loadmoreBtn.innerText)) loadmoreBtn = null; |
| 12010 | let loadMoreSel = ruleParser.curSiteRule.loadMore; |
| 12011 | if (!ruleParser.curSiteRule.smart && !loadMoreSel) return null; |
| 12012 | if (loadmoreBtn) return loadmoreBtn; |
| 12013 | let btnSel = loadMoreSel || defaultLoadmoreSel; |
| 12014 | if (btnSel) { |
| 12015 | loadmoreBtn = getElement(btnSel, doc, null, true); |
| 12016 | if (loadmoreBtn && !loadMoreSel) { |
| 12017 | let childBtns = loadmoreBtn.querySelectorAll("button,.btn"); |
| 12018 | if (childBtns.length === 1) { |
| 12019 | loadmoreBtn = childBtns[0]; |
| 12020 | } |
| 12021 | } |
| 12022 | } |
| 12023 | if (!loadmoreBtn) { |
| 12024 | let buttons = getBody(doc).querySelectorAll("input,button,a,div[onclick]"); |
| 12025 | for (let i = 0; i < buttons.length; i++) { |
| 12026 | let button = buttons[i]; |
| 12027 | if (!button.innerText || button.innerText.length > 20) continue; |
| 12028 | if (button && loadmoreReg.test(button.innerText)) { |
| 12029 | loadmoreBtn = button; |
| 12030 | break; |
| 12031 | } |
| 12032 | } |
| 12033 | } |
| 12034 | if (loadmoreBtn && !ruleParser.curSiteRule.loadMore && loadmoreBtn.dataset.ajax !== "true") { |
| 12035 | let href = loadmoreBtn.getAttribute("href"), i = 0, pa = loadmoreBtn.parentNode; |
| 12036 | while (!href && i++ < 5 && pa) { |
| 12037 | href = pa.getAttribute && pa.getAttribute("href"); |
| 12038 | pa = pa.parentNode; |
| 12039 | } |
| 12040 | if (href && href != "/" && !ruleParser.hrefIsJs(href)) { |
| 12041 | loadmoreBtn = null; |
| 12042 | } |
| 12043 | } |
| 12044 | if (loadmoreBtn && /less/.test(loadmoreBtn.innerText)) loadmoreBtn = null; |
| 12045 | if (loadmoreBtn) debug(loadmoreBtn, 'Load more button'); |
| 12046 | return loadmoreBtn; |
| 12047 | } |
| 12048 | |
| 12049 | var targetY = -1; |
| 12050 | function scrollToPageBar(bar) { |
no test coverage detected