MCPcopy Index your code
hub / github.com/hoothin/UserScripts / getLoadMore

Function getLoadMore

Pagetual/pagetual.user.js:12008–12047  ·  view source on GitHub ↗
(doc, loadmoreBtn)

Source from the content-addressed store, hash-verified

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) {

Callers 2

initListenerFunction · 0.85
checkPageFunction · 0.85

Calls 5

getElementFunction · 0.85
debugFunction · 0.85
containsMethod · 0.80
hrefIsJsMethod · 0.80
getBodyFunction · 0.70

Tested by

no test coverage detected