|
31 | 31 | // @name:da Pagetual |
32 | 32 | // @name:fr-CA Pagetual |
33 | 33 | // @namespace hoothin |
34 | | -// @version 1.9.37.119 |
| 34 | +// @version 1.9.37.120 |
35 | 35 | // @description Perpetual pages - powerful auto-pager script. Auto fetching next paginated web pages and inserting into current page for infinite scroll. Support thousands of web sites without any rule. |
36 | 36 | // @description:zh-CN 终极自动翻页 - 加载并拼接下一分页内容至当前页尾,智能适配任意网页 |
37 | 37 | // @description:zh-TW 終極自動翻頁 - 加載並拼接下一分頁內容至當前頁尾,智能適配任意網頁 |
|
3904 | 3904 | postParams = postParams[1]; |
3905 | 3905 | url = url.replace(/#p{.*/, ""); |
3906 | 3906 | } |
3907 | | - _GM_xmlhttpRequest({ |
3908 | | - url: url, |
| 3907 | + fetch(url, { |
3909 | 3908 | method: postParams ? 'POST' : 'GET', |
3910 | | - data: postParams, |
3911 | | - overrideMimeType: 'text/html;charset=' + charset, |
| 3909 | + body: postParams, |
3912 | 3910 | headers: { |
3913 | 3911 | 'Referer': location.href, |
3914 | 3912 | 'User-Agent': navigator.userAgent, |
3915 | 3913 | "Content-Type": (postParams ? "application/x-www-form-urlencoded" : "text/html") + ";charset=" + charset |
3916 | | - }, |
3917 | | - timeout: 10000, |
3918 | | - onload: function(res) { |
3919 | | - var doc = null; |
3920 | | - try { |
3921 | | - doc = document.implementation.createHTMLDocument(''); |
3922 | | - doc.documentElement.innerHTML = createHTML(res.response); |
3923 | | - var body = getBody(doc); |
3924 | | - if (!self.preloadDiv) { |
3925 | | - self.preloadDiv = document.createElement('div'); |
3926 | | - self.preloadDiv.id = "pagetual-preload"; |
3927 | | - self.preloadDiv.style.cssText = 'display:none!important;'; |
3928 | | - getBody(document).appendChild(self.preloadDiv); |
3929 | | - self.checkedImgs = {}; |
3930 | | - self.unCheckedImgs = []; |
3931 | | - } |
3932 | | - let code = self.curSiteRule.preloadImages; |
3933 | | - if (code) { |
3934 | | - let imgSrcArr = new Function("doc", '"use strict";' + code)(doc); |
3935 | | - if (imgSrcArr && imgSrcArr.length) { |
3936 | | - imgSrcArr.forEach(imgSrc => { |
3937 | | - if (imgSrc && !self.checkedImgs[imgSrc]) { |
3938 | | - self.checkedImgs[imgSrc] = true; |
3939 | | - self.unCheckedImgs.push(imgSrc); |
3940 | | - } |
3941 | | - }); |
3942 | | - } |
3943 | | - self.preloadImageHandler(); |
3944 | | - } else if (code !== 0 && code !== false) { |
3945 | | - if (body && body.firstChild) { |
3946 | | - self.lazyImgAction(body.children, doc); |
3947 | | - } |
3948 | | - [].forEach.call(doc.images, i => { |
3949 | | - let iSrc = i.src; |
3950 | | - if (iSrc && !self.checkedImgs[iSrc]) { |
3951 | | - self.checkedImgs[iSrc] = true; |
3952 | | - self.unCheckedImgs.push(iSrc); |
| 3914 | + } |
| 3915 | + }).then(response => response.text()).then(data => { |
| 3916 | + var doc = null; |
| 3917 | + try { |
| 3918 | + doc = document.implementation.createHTMLDocument(''); |
| 3919 | + doc.documentElement.innerHTML = createHTML(data); |
| 3920 | + var body = getBody(doc); |
| 3921 | + if (!self.preloadDiv) { |
| 3922 | + self.preloadDiv = document.createElement('div'); |
| 3923 | + self.preloadDiv.id = "pagetual-preload"; |
| 3924 | + self.preloadDiv.style.cssText = 'display:none!important;'; |
| 3925 | + getBody(document).appendChild(self.preloadDiv); |
| 3926 | + self.checkedImgs = {}; |
| 3927 | + self.unCheckedImgs = []; |
| 3928 | + } |
| 3929 | + let code = self.curSiteRule.preloadImages; |
| 3930 | + if (code) { |
| 3931 | + let imgSrcArr = new Function("doc", '"use strict";' + code)(doc); |
| 3932 | + if (imgSrcArr && imgSrcArr.length) { |
| 3933 | + imgSrcArr.forEach(imgSrc => { |
| 3934 | + if (imgSrc && !self.checkedImgs[imgSrc]) { |
| 3935 | + self.checkedImgs[imgSrc] = true; |
| 3936 | + self.unCheckedImgs.push(imgSrc); |
3953 | 3937 | } |
3954 | 3938 | }); |
3955 | | - self.preloadImageHandler(); |
3956 | 3939 | } |
| 3940 | + self.preloadImageHandler(); |
| 3941 | + } else if (code !== 0 && code !== false) { |
| 3942 | + if (body && body.firstChild) { |
| 3943 | + self.lazyImgAction(body.children, doc); |
| 3944 | + } |
| 3945 | + [].forEach.call(doc.images, i => { |
| 3946 | + let iSrc = i.src; |
| 3947 | + if (iSrc && !self.checkedImgs[iSrc]) { |
| 3948 | + self.checkedImgs[iSrc] = true; |
| 3949 | + self.unCheckedImgs.push(iSrc); |
| 3950 | + } |
| 3951 | + }); |
| 3952 | + self.preloadImageHandler(); |
3957 | 3953 | } |
3958 | | - catch(e) { |
3959 | | - debug(e); |
3960 | | - return; |
3961 | | - } |
| 3954 | + } |
| 3955 | + catch(e) { |
| 3956 | + debug(e); |
| 3957 | + return; |
3962 | 3958 | } |
3963 | 3959 | }); |
3964 | 3960 | } |
|
0 commit comments