TA的每日心情 | 开心 2023-7-13 09:56 |
---|
签到天数: 2 天 [LV.1]初来乍到
中级工程师
- 积分
- 120
|
发表于
2023-7-12 22:31:48
|
显示全部楼层
的确是预览。不过我技术还没到位先凑合着用
你指的算法是这种通过ajax访问的方法吗?
function getPageE_(url, type = '', method = 'GET', data = '', type2) {
let mimeType,accept;
switch (type) {
case 'json':
accept = 'application/json'; mimeType = 'application/json; charset=' + (document.characterSet||document.charset||document.inputEncoding); break;
case 'text':
accept = 'text/plain'; mimeType = 'text/plain; charset=' + (document.characterSet||document.charset||document.inputEncoding); break;
default:
accept = 'text/html,application/xhtml+xml,application/xml'; mimeType = 'text/html; charset=' + (document.characterSet||document.charset||document.inputEncoding);
}
GM_xmlhttpRequest({
url: url,
method: method,
data: data,
responseType: type,
overrideMimeType: mimeType,
headers: {
'Referer': (curSite.noReferer === true) ? null:location.href,
'Content-Type': (method === 'POST') ? 'application/x-www-form-urlencoded':'',
'User-Agent': navigator.userAgent,
'Accept': accept
},
timeout: 10000,
onload: function (response) {
try {
//console.log('最终 URL:' + response.finalUrl, '返回内容:' + response.responseText)
switch (type) {
case 'json':
curSite.pager.insertE(response.response, type2);
break;
case 'text':
curSite.pager.insertE(response.responseText, type2)
break;
default:
curSite.pager.insertE(createDocumentByString(response.responseText), type2)
}
} catch (e) {
console.log(e);
}
},
onerror: function (response) {
setTimeout(function(){curSite.pageUrl = '';}, 3000)
console.log('URL:' + url, response)
GM_notification({text: '❌ 获取下一页失败,可 3 秒后再次滚动网页重试(或尝试刷新网页)...', timeout: 5000});
},
ontimeout: function (response) {
setTimeout(function(){curSite.pageUrl = '';}, 3000)
console.log('URL:' + url, response)
GM_notification({text: '❌ 获取下一页超时,可 3 秒后再次滚动网页重试(或尝试刷新网页)...', timeout: 5000});
}
});
}
用这个方法我解决不了有的网站cookie加密 以及服务器返回的response加密的问题 所以iframe这招我觉得还不错 |
|