🏠 返回首頁 

Greasy Fork is available in English.

I'm wenku8 admin!

通过简单的几行代码把用户伪装成wenku8管管

Ce script ne doit pas être installé directement. C'est une librairie destinée à être incluse dans d'autres scripts avec la méta-directive // @require https://update.greasyfork.org/scripts/428403/1000865/I%27m%20wenku8%20admin%21.js

(function () {
const targetPage = 'https://www.wenku8.net/userinfo.php?id=917768';
const scriptId = 'pretend_admin';
const imgId = 'pretend_admin_img';
const scriptLink = 'https://greasyfork.org/scripts/428403/code/script.js';
main();
function main() {
const img = document.querySelector('#' + imgId);
img && img.parentElement.removeChild(img);
switch(location.href) {
case 'about:blank':
console.log('Wenku8 admin: Injecting to opener...');
// Opened page: Inject to opener
const oDoc = window.opener.document;
const script = oDoc.querySelector(scriptId);
loadJS(script.src, null, oDoc);
case targetPage:
// Just this page
console.log('Wenku8 admin: Editing 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;
});
default:
// Opener page: Make all opener links magical
console.log('Wenku8 admin: Doing magic...');
if (window.magical) {
return false;
}
window.magical = true;
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 oWin = newtab.window;
const oDom = newtab.document;
oWin.addEventListener('load', function(e) {
const win = e.currentTarget;
const dom = win.document;
const script = dom.createElement('script');
script.src = scriptLink;
dom.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.r###lt;
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();
}
}) ();