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

Function checkIframe

Pagetual/pagetual.user.js:12669–12744  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

12667 } catch(e) {}
12668 let pageEleTryTimes = 0;
12669 async function checkIframe() {
12670 if (urlChanged || isPause) {
12671 return callback(false, false);
12672 }
12673 try {
12674 doc = doc || iframe.contentDocument || iframe.contentWindow.document;
12675 if (checkEval && !await checkEval(doc)) {
12676 setTimeout(() => {
12677 checkIframe();
12678 }, waitTime);
12679 return;
12680 } else {
12681 let preCode = ruleParser.curSiteRule.pagePre, eles = null;
12682 if (preCode) {
12683 try {
12684 let preResult;
12685 if (typeof preCode == 'function') {
12686 preResult = await preCode(doc.documentElement.innerHTML, doc);
12687 } else if (preCode.length == 2) {
12688 preResult = doc.documentElement.innerHTML.replace(new RegExp(preCode[0], "gi"), preCode[1]);
12689 } else {
12690 preResult = await new AsyncFunction("response", "doc", '"use strict";' + preCode)(doc.documentElement.innerHTML, doc);
12691 }
12692 if (typeof preResult !== "undefined") {
12693 if (typeof preResult === "string") {
12694 setHTML(doc.documentElement, preResult, doc);
12695 } else eles = preResult;
12696 }
12697 } catch(e) {
12698 debug(e);
12699 }
12700 }
12701 let base = doc.querySelector("base");
12702 ruleParser.basePath = (base && base.href) || url;
12703 if (eles === null) eles = ruleParser.getPageElement(doc, iframe.contentWindow, pageEleTryTimes < 25);
12704 if (eles && eles.length > 0) {
12705 await ruleParser.hookUrl(doc);
12706 await callback(doc, eles);
12707 } else if (pageEleTryTimes++ < 100) {
12708 getBody(doc).scrollTop = 9999999;
12709 if (doc.documentElement) {
12710 doc.documentElement.scrollTop = 9999999;
12711 }
12712 setTimeout(() => {
12713 checkIframe();
12714 }, waitTime);
12715 return;
12716 } else {
12717 if (failFromIframe++ > 2) {
12718 failFromIframe = 0;
12719 debug("Stop as failFromIframe");
12720 changeStop(true);
12721 callback(false, false);
12722 } else {
12723 ruleParser.noValidContent(url);
12724 callback(false, false);
12725 }
12726 }

Callers 2

loadedHandlerFunction · 0.70
forceIframeFunction · 0.70

Calls 10

debugFunction · 0.85
changeStopFunction · 0.85
nextPageFunction · 0.85
loadedHandlerFunction · 0.85
getPageElementMethod · 0.80
hookUrlMethod · 0.80
noValidContentMethod · 0.80
getInsertMethod · 0.80
setHTMLFunction · 0.70
getBodyFunction · 0.70

Tested by

no test coverage detected