1class CY_Utils { 2 3 // index ä»£è¡¨çæ¯ 第å ç§å¸å±æ¹æ¡ 4 // v ä»£è¡¨çæ¯ å½åæ¹æ¡å å«å 个åå ç´ 5 static json = [1, 2, 2, 3] 6 7 static row_index = 0; 8 9 /** 10 * 设置å¸å±æ¹æ¡ 11 * @param newJson{[number]} å¸å±æ¹æ¡åé 12 */ 13 static setJsonLayer(newJson) { 14 this.json = newJson; 15 } 16 17 /** 18 * æ¶é´è½¬æ¢å·¥å ·ç±» 19 * @param n éè¦è¢«è½¬æ¢çæ¶é´ç毫ç§å¼ 20 * @return {string} 转æ¢ä¹åçæ¶é´æ³æ°å¼ 21 */ 22 static getDate(n) { 23 if (n instanceof Date) { 24 let y = n.getFullYear(), 25 m = n.getMonth() + 1, 26 d = n.getDate(); 27 return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + n.toTimeString().substr(0, 8); 28 } 29 let now = new Date(n), 30 y = now.getFullYear(), 31 m = now.getMonth() + 1, 32 d = now.getDate(); 33 return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8); 34 } 35 36 37 /** 38 * æ£æ¥å½åç¨æ·æ¯å¦æ£å¨ä½¿ç¨ç§»å¨è®¾å¤è¿è¡æµè§ 39 * @return {boolean} 妿æ¯ä½¿ç¨çç§»å¨è®¾å¤ å¨è¿éä¼è¿å true 40 */ 41 static isMobileDevice() { 42 const userAgent = navigator.userAgent || navigator.vendor || window.opera; 43 44 // 对äºiPadï¼è¿å¯è½ä¼ä¸æ¡é¢çSafariçç¨æ·ä»£çå符串混æ·ï¼æä»¥éè¦å æ£æ¥ 45 if (/iPad|Macintosh/.test(userAgent) && 'ontouchend' in document) { 46 return true; 47 } 48 49 // æ£æ¥æ¯å¦ä¸ºç§»å¨è®¾å¤ 50 return /Mobi|Android/i.test(userAgent); 51 } 52 53 /** 54 * åå§å页é¢ä¸çæ°æ® 55 * @param targetParentElement 56 * @param dataList {[{id:number, imagesSrc, title, description, sendDate:number, ip,dataFSPath}]} 57 */ 58 static init_date(targetParentElement, dataList) { 59 let htmlDivElement = document.createElement("div"); 60 let i = 0; 61 // 计ç®åºå½åè¡éè¦å¤å°ä¸ªåå ç´ 62 while (i < dataList.length) { 63 let now_row_count = 0; 64 const number = this.json[this.row_index]; 65 // 为å½åè¡å¡«å å ç´ 66 while (++now_row_count <= number && i < dataList.length) { 67 let data = dataList[i]; 68 CY_Utils.add_item(htmlDivElement, "url('" + data.imagesSrc[0] + "') no-repeat center", data.title, data.description, CY_Utils.getDate(data.sendDate), data.ip, () => window.open("ArticleReading.html?path=" + data.dataFSPath), (i - (i >> 1 << 1)) + 1); 69 i++; 70 } 71 // å¡«å 宿¯å°±åå¤ä¸ä¸è¡ 72 htmlDivElement.classList.add('container') 73 targetParentElement.appendChild(htmlDivElement); 74 htmlDivElement = document.createElement("div"); 75 if (++this.row_index === this.json.length) { 76 this.row_index = 0; 77 } 78 } 79 htmlDivElement.classList.add('container') 80 targetParentElement.appendChild(htmlDivElement); 81 } 82 83 /** 84 * 追å ä¸ä¸ªåå ç´ 85 * @param targetParentElement 86 * @param backImage 87 * @param titleName 88 * @param descriptionData 89 * @param createDate 90 * @param locationData 91 * @param onClick 92 * @param type {1|2}两ç§ç±»åçæ ·å¼ç¨å¾®æäºä¸å 93 */ 94 static add_item(targetParentElement, 95 backImage = "url('image/bigImage.jpg') no-repeat center", 96 titleName = "æ é¢", 97 descriptionData = "è¿éæ¯ä»ç»ï¼è¿éæ¯ä»ç»ï¼è¿éæ¯ä»ç»ï¼è¿éæ¯ä»ç»ï¼è¿éæ¯ä»ç»ï¼è¿éæ¯ä»ç»ï¼è¿éæ¯ä»ç»ï¼è¿éæ¯ä»ç»ï¼è¿éæ¯ä»ç»ï¼è¿éæ¯ä»ç»ï¼è¿éæ¯ä»ç»ï¼è¿éæ¯ä»ç»ï¼è¿éæ¯ä»ç»ï¼è¿éæ¯ä»ç»ï¼", 98 createDate = "2024-04-04", locationData = "太é³ç³»", onClick = () => { 99 }, type = 1 100 ) { 101 // å建ä¸ä¸ªæ° div å ç´ 102 const newItem = document.createElement("div"); 103 104 // 设置类å 105 newItem.className = "item item_" + type + " move-from-sides_X_" + type + "_e"; 106 107 newItem.addEventListener("click", onClick) 108 109 110 // å建å é¨ .item_article å ç´ å¹¶è®¾ç½®èæ¯æ ·å¼ 111 const itemArticle = document.createElement("div"); 112 itemArticle.className = "item_article"; 113 itemArticle.style.background = backImage; 114 115 // å建ä¸ä¸ªæ° div å ç´ 116 const newItem0 = document.createElement("div"); 117 118 119 // å建å é¨ h1 å ç´ å¹¶è®¾ç½®ææ¬å 容 120 const title = document.createElement("h1"); 121 title.textContent = titleName; 122 123 // å建å é¨ p å ç´ å¹¶è®¾ç½®ææ¬å 容 124 const description = document.createElement("p"); 125 description.textContent = descriptionData; 126 127 // å建å 鍿¥æåå°ç¹ span å ç´ å¹¶è®¾ç½®ææ¬å 容 128 const date = document.createElement("span"); 129 date.textContent = createDate; 130 131 const location = document.createElement("span"); 132 location.textContent = "î§§ " + locationData; 133 134 // å建å è£¹æ¥æåå°ç¹ç div å ç´ 135 const infoWrapper = document.createElement("div"); 136 infoWrapper.appendChild(date); 137 infoWrapper.appendChild(location); 138 139 // å° h1ãp å infoWrapper æ·»å å°æå å± div ä¸ 140 const innerDiv = document.createElement("div"); 141 innerDiv.appendChild(title); 142 innerDiv.appendChild(description); 143 innerDiv.appendChild(infoWrapper); 144 145 // å° innerDiv æ·»å å° itemArticle ä¸ 146 itemArticle.appendChild(newItem0); 147 newItem0.appendChild(innerDiv); 148 149 // å° itemArticle æ·»å å°æ°å»ºç item å ç´ ä¸ 150 newItem.appendChild(itemArticle); 151 152 // å°æ°å»ºç item å ç´ è¿½å å°ç®æ ç¶å ç´ ä¸ 153 targetParentElement.appendChild(newItem); 154 } 155 156 /** 157 * æç´¢URLä¸çæå®çåæ° 158 * @return æç´¢å°çåååæ°ç»åç list 159 */ 160 static search_Params(paramName) { 161 // å建ä¸ä¸ª URLSearchParams 对象 162 const params = new URLSearchParams(window.location.search); 163 // è·åå为 "paramName" çåæ°å¼ 164 const paramValues = params.getAll(paramName); 165 // å°åæ°å¼å°è£ 为å表 166 return Array.from(paramValues); 167 } 168 169}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.