MCPcopy
hub / github.com/hoothin/UserScripts / checkElement

Method checkElement

Pagetual/pagetual.user.js:5764–5964  ·  view source on GitHub ↗
(ele)

Source from the content-addressed store, hash-verified

5762 nextLeftPos = this.initNext.getBoundingClientRect().left;
5763 }
5764 function checkElement(ele) {
5765 if (compareNodeName(ele, ["pre", "code"])) {
5766 self.curSiteRule.pageElement = geneSelector(ele.parentNode);
5767 debug(self.curSiteRule.pageElement, 'Page element');
5768 return [ele.parentNode];
5769 }
5770 if (ele.children && ele.children.length === 1) {
5771 let hasText = false;
5772 for (let i in ele.childNodes) {
5773 let child = ele.childNodes[i];
5774 if (child.nodeType === 3 && child.nodeValue.trim() !== '') {
5775 hasText = true;
5776 break;
5777 }
5778 }
5779 if (!hasText) {
5780 ele = ele.children[0];
5781 let validSize = self.getValidSize(ele, curWin);
5782 curHeight = validSize.h;
5783 curWidth = validSize.w;
5784 }
5785 }
5786 if (compareNodeName(ele, ["picture", "img"])) {
5787 self.curSiteRule.pageElement = geneSelector(ele.parentNode) + ">" + ele.nodeName.toLowerCase();
5788 debug(self.curSiteRule.pageElement, 'Page element');
5789 let eles = [];
5790 for (let i = 0; i < ele.parentNode.children.length; i++) {
5791 let curNode = ele.parentNode.children[i];
5792 if (curNode.nodeName === ele.nodeName && curNode.id === ele.id && curNode.className === ele.className) {
5793 eles.push(curNode);
5794 }
5795 }
5796 return eles;
5797 }
5798 if (compareNodeName(ele, ["form"]) && ele.parentNode !== getBody(document)) {
5799 self.curSiteRule.pageElement = geneSelector(ele) + ">*";
5800 debug(self.curSiteRule.pageElement, 'Page element');
5801 return ele.children;
5802 }
5803 if (ele.children.length === 0 && !self.curSiteRule.pageElement) {
5804 if (compareNodeName(ele.parentNode, ["p"])) ele = ele.parentNode;
5805 self.curSiteRule.pageElement = geneSelector(ele.parentNode) + ">" + ele.nodeName.toLowerCase();
5806 debug(self.curSiteRule.pageElement, 'Page element');
5807 return getAllElements(self.curSiteRule.pageElement, doc);
5808 }
5809 let i, minHeight = curHeight * 0.52, curMaxEle = null, curMaxArea = 0, minWidth = Math.min(curWidth * 0.38, 500);
5810 let isHori, preOffsetTop = -1;
5811 let articleNum = 0;
5812 for (i = 0; i < ele.children.length; i++) {
5813 let curNode = ele.children[i];
5814 if (ele !== body && ele.parentNode !== body && /^H\d$/i.test(curNode.nodeName) && curNode.offsetParent && curNode.offsetHeight) {
5815 curMaxEle = null;
5816 break;
5817 }
5818 if (compareNodeName(curNode, ["canvas", "nav"])) continue;
5819 if (curNode.role === "menu") continue;
5820 let curStyle = curWin.getComputedStyle(curNode);
5821 if (curStyle.opacity === "0") {

Callers

nothing calls this directly

Calls 9

compareNodeNameFunction · 0.85
geneSelectorFunction · 0.85
debugFunction · 0.85
getAllElementsFunction · 0.85
getElementTopFunction · 0.85
getValidSizeMethod · 0.80
containsMethod · 0.80
checkTargetChildrenMethod · 0.80
getBodyFunction · 0.70

Tested by

no test coverage detected