🏠 Home 

初音的青葱Onedrive微云自动填充密码并点击[多网页版]

网站变更

// ==UserScript==
// @name         初音的青葱Onedrive微云自动填充密码并点击[多网页版]
// @namespace    http://tampermonkey.net/
// @version      2.4.2
// @description  网站变更
// @author       aotmd
// @match        https://mkgal-my.sharepoint.com/*
// @match        https://mkfx-my.sharepoint.cn/*
// @match        https://mkgal.com/*
// @match        https://*.mkgal.com/*
// @match		 https://share.weiyun.com/*
// @match        https://www.yngal.com/*
// @match        https://www.fufugal.com/*
// @icon         https://www.fufugal.com/static/images/login.jpg
// @grant        none
// ==/UserScript==
(function () {
let setting = {
//取不到值的默认密码
"Onedrive默认密码": "MKFX",
//过低将无法填充密码
"微云延时": 500,
};
addLoadEvent(function () {
let url = window.location.href;
if (/mkgal\.com\/.+/i.test(url) || /yngal\.com\/.+/i.test(url)) {
let downloadLink = document.getElementsByTagName("h6");
for (let i = 0; i < downloadLink.length; i++) {
if (/微云/.test(downloadLink[i].innerText)) {
let weiYun = downloadLink[i].parentNode;
deleteRedundantEmptyTextNodes(weiYun);
let child = weiYun.childNodes;
let password = child[2].getElementsByTagName("span")[0].innerText;
child[1].href = setQueryString(child[1].href, "password", password);
}
}
} else if (/https:\/\/mkfx-my\.sharepoint\.cn\/.+/i.test(url) || /https:\/\/mkgal-my\.sharepoint\.com\/.+/i.test(url)) {
if (getQueryString('password') == null) {
document.getElementById("txtPassword").value = setting.Onedrive默认密码;
} else {
document.getElementById("txtPassword").value = getQueryString('password')
}
document.getElementById("btnSubmitPassword").click();
} else if (/https:\/\/share\.weiyun\.com\/.+/i.test(url)) {/*微云自动填充密码*/
if (getQueryString('password') != null) {
setTimeout(function () {
/**
* 自定义输入事件触发事件
* @param dom 元素
* @param st 内容
*/
window.inputValue = function (dom, st) {
let evt = new InputEvent('input', {
inputType: 'insertText',
data: st,
dataTransfer: null,
isComposing: false
});
dom.value = st;
dom.dispatchEvent(evt);
};
let inputDom = document.getElementsByClassName("input-txt")[0];
window.inputValue(inputDom, getQueryString('password'));
document.getElementsByClassName("btn btn-l btn-main")[0].click();
}, setting.微云延时);
}
}
});
/**
* 删除多余的空文本节点,为nextSibling,等节点操作一致性做准备
* @param elem 要优化的父节点
*/
function deleteRedundantEmptyTextNodes(elem) {
let elemList = elem.childNodes;
for (let i = 0; i < elemList.length; i++) {
/*当为文本节点并且为不可见字符时删除节点*/
if (elemList[i].nodeName === "#text" && /^\s+$/.test(elemList[i].nodeValue)) {
elem.removeChild(elemList[i])
}
}
}
/**
* 获取url的参数
* @param name 参数名称
* @returns {string|null}
*/
function getQueryString(name) {
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
let r = decodeURI(window.location.search).substr(1).match(reg);
if (r != null) return (r[2]);
return null;
}
/**
* 设置url的参数
* @param url 要设置的url
* @param name 变量名称
* @param data 数据
*/
function setQueryString(url, name, data) {
let index = url.lastIndexOf('?');
if (index === -1) {
if (url[url.length - 1] !== '/') {
return url + '?' + name + '=' + data;
} else {
return url.substring(0, url.length - 1) + '?' + name + '=' + data + '/';
}
} else {
if (url[url.length - 1] !== '/') {
return url + '&' + name + '=' + data;
} else {
return url.substring(0, url.length - 1) + '&' + name + '=' + data + '/';
}
}
}
/**
* 添加浏览器执行事件
* @param func 无参匿名函数
*/
function addLoadEvent(func) {
let oldOnload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function () {
try {
oldOnload();
} catch (e) {
console.log(e);
} finally {
func();
}
}
}
}
})();