(_charset)
| 1121 | let tryTimes=0; |
| 1122 | let validTimes=0; |
| 1123 | function requestDoc(_charset) { |
| 1124 | if (!_charset) _charset = charset; |
| 1125 | return GM_xmlhttpRequest({ |
| 1126 | method: 'GET', |
| 1127 | url: aTag.href, |
| 1128 | headers:{ |
| 1129 | referer:aTag.href, |
| 1130 | "Content-Type":"text/html;charset="+_charset |
| 1131 | }, |
| 1132 | timeout:10000, |
| 1133 | overrideMimeType:"text/html;charset="+_charset, |
| 1134 | onload: async function(result) { |
| 1135 | let doc = getDocEle(result.responseText); |
| 1136 | if (charsetValid) { |
| 1137 | let equiv = doc.querySelector('[http-equiv="Content-Type"]'); |
| 1138 | if (equiv && equiv.content) { |
| 1139 | let innerCharSet = equiv.content.match(/charset\=([^;]+)/); |
| 1140 | if (innerCharSet && innerCharSet[1].replace("-", "").toLowerCase() != _charset.replace("-", "").toLowerCase()) { |
| 1141 | charset = innerCharSet[1]; |
| 1142 | return requestDoc(charset); |
| 1143 | } |
| 1144 | } |
| 1145 | } |
| 1146 | downIndex++; |
| 1147 | downNum++; |
| 1148 | if (/^{/.test(result.responseText)) { |
| 1149 | doc.json = () => { |
| 1150 | try { |
| 1151 | return JSON.parse(result.responseText); |
| 1152 | } catch(e) {} |
| 1153 | return {}; |
| 1154 | } |
| 1155 | } |
| 1156 | let base = doc.querySelector("base"); |
| 1157 | let nextPages = !disableNextPage && (!processFunc || nextPageFunc) && await checkNextPage(doc, base ? base.href : aTag.href); |
| 1158 | if (nextPages) { |
| 1159 | if (!nextPages.length) nextPages = [nextPages]; |
| 1160 | nextPages.forEach(nextPage => { |
| 1161 | var inArr=false; |
| 1162 | for(var ai=0;ai<aEles.length;ai++){ |
| 1163 | if(aEles[ai].href==nextPage.href){ |
| 1164 | inArr=true; |
| 1165 | break; |
| 1166 | } |
| 1167 | } |
| 1168 | if(!inArr){ |
| 1169 | nextPage.innerText=aTag.innerText+"\t>>"; |
| 1170 | aEles.push(nextPage); |
| 1171 | let targetIndex = curIndex; |
| 1172 | for(let a=0;a<insertSigns.length;a++){ |
| 1173 | let signs=insertSigns[a],breakSign=false; |
| 1174 | if(signs){ |
| 1175 | for(let b=0;b<signs.length;b++){ |
| 1176 | let sign=signs[b]; |
| 1177 | if(sign==curIndex){ |
| 1178 | targetIndex=a; |
| 1179 | breakSign=true; |
| 1180 | break; |
no test coverage detected