Greasy Fork is available in English.
通过简单的几行代码把用户伪装成wenku8管管
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/428403/1000855/I%27m%20wenku8%20admin%21.js
(function () {
const targetPage = 'https://www.wenku8.net/userinfo.php?id=917768';
const scriptId = 'pertend_admin';
const scriptLink = 'http://greasyfork.icu/scripts/428403/code/script.js';
main();
function main() {
switch(location.href) {
case 'about:blank':
// Opened page: Inject to opener
const oDoc = window.opener.document;
const script = oDoc.querySelector(scriptId);
loadJS(script.src, null, oDoc);
return true;
case targetPage:
// Just this page
getDocument('https://www.wenku8.net/userinfo.php?id=2', function (oDoc) {
const content = document.querySelector('#content');
const table = content.querySelector('table');
const oContent = oDoc.querySelector('#content');
const otable = oContent.querySelector('table');
content.innerHTML = oContent.innerHTML;
});
return false;
default:
// Opener page: Make all opener links magical
const as = document.querySelectorAll('a[href="https://www.wenku8.net/userinfo.php?id=917768"]');
for (const a of as) {
a.addEventListener('click', function (e) {
destroyEvent(e);
const newtab = window.open(a.href);
const oDom = newtab.document;
oDom.addEventListener('DOMContentLoaded', function() {
const script = document.createElement('script');
script.src = targetPage;
oDom.head.appendChild(script);
});
});
}
return true;
}
}
// Load javascript from given url
function loadJS(url, callback, oDoc = document) {
var script = document.createElement('script'),
fn = callback || function () {};
script.type = 'text/javascript';
//IE
if (script.readyState) {
script.onreadystatechange = function () {
if (script.readyState == 'loaded' || script.readyState == 'complete') {
script.onreadystatechange = null;
fn();
}
};
} else {
//其他浏览器
script.onload = function () {
fn();
};
}
script.src = url;
oDoc.getElementsByTagName('head')[0].appendChild(script);
}
// Download and parse a url page into a html document(dom).
// when xhr onload: callback.apply([dom, args])
function getDocument(url, callback, args = []) {
const xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function (response) {
const htmlblob = xhr.response;
const reader = new FileReader();
reader.onload = function (e) {
const htmlText = reader.result;
const dom = new DOMParser().parseFromString(htmlText, 'text/html');
args = [dom].concat(args);
callback.apply(null, args);
//callback(dom, htmlText);
}
reader.readAsText(htmlblob, 'GBK');
}
xhr.send();
}
// Just stopPropagation and preventDefault
function destroyEvent(e) {
if (!e) {return false;};
if (!e instanceof Event) {return false;};
e.stopPropagation();
e.preventDefault();
}
}) ();