Skip to content

Commit 2f85643

Browse files
committed
Update pagetual.user.js
1 parent fdb6bdf commit 2f85643

1 file changed

Lines changed: 19 additions & 8 deletions

File tree

Pagetual/pagetual.user.js

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
// @name:it Pagetual
1111
// @name:ko 東方永頁機
1212
// @namespace hoothin
13-
// @version 1.9.26.6
13+
// @version 1.9.26.7
1414
// @description Perpetual pages - Most powerful Auto Pager script. Auto loading next paginated web pages and inserting into current page.
1515
// @description:zh-CN 自动翻页脚本 - 自动加载并拼接下一分页内容,无需规则驱动支持任意网页
1616
// @description:zh-TW 自動翻頁脚本 - 自動加載並拼接下一分頁內容,無需規則驅動支持任意網頁
@@ -1171,7 +1171,8 @@
11711171
}
11721172
}
11731173
}else{
1174-
return url.replace(/.*[&\/\?](p=|page[=\/_-]?)(\d+).*/i, "$2").replace(/.*[_-](\d+)\..*/i, "$1");
1174+
let pageNum=url.replace(/.*[&\/\?](p=|page[=\/_-]?)(\d+).*/i, "$2");
1175+
return pageNum==url?curPage:pageNum;
11751176
}
11761177
return curPage;
11771178
}
@@ -3329,6 +3330,7 @@
33293330
if(pageEle.length > 1){
33303331
targetElement = targetElement.parentNode;
33313332
}
3333+
if(parseInt(iframe.style.height)==targetElement.scrollHeight) return;
33323334
iframe.style.height=targetElement.scrollHeight+"px";
33333335
frameDoc.documentElement.scrollTop = 0;
33343336
frameDoc.documentElement.scrollLeft = 0;
@@ -3351,8 +3353,13 @@
33513353

33523354
function forceIframe(url, callback){
33533355
url=url.replace(/#[^#]*/,"");
3354-
let curIframe = document.createElement('iframe'),iframeDoc;
3355-
let setPosition = ()=>{
3356+
let curIframe = document.createElement('iframe'),iframeDoc,isloaded=false,inAction=true;
3357+
let loadedHandler = ()=>{
3358+
inAction=false;
3359+
if(isloaded)return;
3360+
isloaded=true;
3361+
ruleParser.insertPage(iframeDoc, [], url, null, true);
3362+
callback(curIframe, true);
33563363
let getIframe = () => {
33573364
return curIframe;
33583365
};
@@ -3386,15 +3393,13 @@
33863393
callback(false, false);
33873394
return;
33883395
}
3389-
ruleParser.insertPage(iframeDoc, [], url, null, true);
3390-
callback(curIframe, true);
33913396
let css=ruleParser.curSiteRule.css;
33923397
if(css){
33933398
let styleEle=iframeDoc.createElement("style");
33943399
styleEle.innerHTML=css;
33953400
iframeDoc.head.appendChild(styleEle);
33963401
}
3397-
setPosition();
3402+
loadedHandler();
33983403
let code=ruleParser.curSiteRule.init;
33993404
if(code){
34003405
try{
@@ -3404,7 +3409,7 @@
34043409
}
34053410
}
34063411
});
3407-
let inAction=false,checkTimes=0;
3412+
let checkTimes=0;
34083413
let forceRefresh=e=>{
34093414
if(inAction || !iframeDoc)return;
34103415
inAction=true;
@@ -3418,6 +3423,12 @@
34183423
ruleParser.getNextLink(iframeDoc);
34193424
if(ruleParser.nextLinkHref){
34203425
foundNext();
3426+
}else if(checkTimes>=5){
3427+
let pageElement = ruleParser.getPageElement(iframeDoc,iframeDoc.defaultView);
3428+
if (!pageElement){
3429+
inAction=true;
3430+
curIframe.contentWindow.location.reload();
3431+
}
34213432
}else if(checkTimes>=10){
34223433
foundNext();
34233434
}

0 commit comments

Comments
 (0)