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

Function requestDoc

Pagetual/pagetual.user.js:11057–11203  ·  view source on GitHub ↗
(url, callback)

Source from the content-addressed store, hash-verified

11055
11056 let xhrFailed = false;
11057 function requestDoc(url, callback) {
11058 let postParams = url.match(/#p{(.*)}$/);
11059 if (postParams) {
11060 postParams = postParams[1];
11061 url = url.replace(/#p{.*/, "");
11062 }
11063 let ruleHeaders = ruleParser.curSiteRule.headers;
11064 let headers = {
11065 'Referer': location.href,
11066 'User-Agent': navigator.userAgent,
11067 'accept': 'text/html,application/xhtml+xml,application/xml',
11068 "Content-Type": (postParams ? "application/x-www-form-urlencoded" : "text/html") + ";charset=" + charset
11069 };
11070 if (ruleHeaders) {
11071 if (ruleHeaders.referer) {
11072 headers.referer = ruleHeaders.referer;
11073 }
11074 if (ruleHeaders.userAgent) {
11075 headers.userAgent = ruleHeaders.userAgent;
11076 }
11077 if (ruleHeaders.accept) {
11078 headers.accept = ruleHeaders.accept;
11079 }
11080 if (ruleHeaders.contentType) {
11081 headers.contentType = ruleHeaders.contentType;
11082 let ruleCharset = ruleHeaders.contentType.match(/charset\=([^;]+)/);
11083 if (ruleCharset) charset = ruleCharset[1];
11084 }
11085 if (ruleHeaders.cookie) {
11086 headers.cookie = ruleHeaders.cookie;
11087 }
11088 }
11089 _GM_xmlhttpRequest({
11090 url: url,
11091 method: postParams ? 'POST' : 'GET',
11092 data: postParams,
11093 overrideMimeType: 'text/html;charset=' + charset,
11094 headers: headers,
11095 timeout: 50000,
11096 onload: async function(res) {
11097 if (isPause) return callback(false);
11098 var doc = null, response = res.response;
11099 try {
11100 doc = document.implementation.createHTMLDocument('');
11101 setHTML(doc.documentElement, response, doc);
11102 } catch (e) {
11103 debug('parse error:' + e.toString());
11104 }
11105 let pageElement = null;
11106 let preCode = ruleParser.curSiteRule.pagePre;
11107 if (preCode) {
11108 try {
11109 let preResult;
11110 if (typeof preCode == 'function') {
11111 preResult = await preCode(response, doc);
11112 } else if (preCode.length == 2) {
11113 preResult = response.replace(new RegExp(preCode[0], "gi"), preCode[1]);
11114 } else {

Callers 1

nextPageFunction · 0.70

Calls 9

debugFunction · 0.85
compareNodeNameFunction · 0.85
requestFromIframeFunction · 0.85
changeStopFunction · 0.85
getPageElementMethod · 0.80
getInsertMethod · 0.80
insertPageMethod · 0.80
noValidContentMethod · 0.80
setHTMLFunction · 0.70

Tested by

no test coverage detected