// ==UserScript==
// @name 广东省教育双融双创智慧共享社区网课|校园新冠肺炎疫情防控培训网课|微信:zhanyc_cn 备用微信:zhanfengkuo 个人网站:http://jb.zhanyc.cn
// @namespace http://jb.zhanyc.cn/
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAADcWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS41LWMwMTQgNzkuMTUxNDgxLCAyMDEzLzAzLzEzLTEyOjA5OjE1ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmZiZDg4YTY1LTU1NjYtMGY0NS05NDk3LTVjZWU1YzYwOGMzZCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEMEY4REI2MjA2QTIxMUVEQkI2MkVBQjk4Mzg1RjY1QiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEMEY4REI2MTA2QTIxMUVEQkI2MkVBQjk4Mzg1RjY1QiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmJkODhhNjUtNTU2Ni0wZjQ1LTk0OTctNWNlZTVjNjA4YzNkIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZiZDg4YTY1LTU1NjYtMGY0NS05NDk3LTVjZWU1YzYwOGMzZCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0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
// @version 1.0
// @description 接各类脚本开发工作,微信:zhanyc_cn 备用微信:zhanfengkuo 个人网站:http://jb.zhanyc.cn
// @author zfk
// @include https://pc-srsc.gdedu.gov.cn/*
// @include *://m.zhanyc.cn/*
// @run-at document-body
// @require http://code.jquery.com/jquery-2.1.1.min.js
// @require https://greasyfork.org/scripts/434540-layerjs-gm-with-css/code/layerjs-gm-with-css.js?version=1065982
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_addStyle
// @grant GM_deleteValue
// @grant GM_xmlhttpRequest
// @grant GM_setClipboard
// @grant GM_registerMenuCommand
// @grant GM_getResourceURL
// @grant GM_addValueChangeListener
// @grant GM_removeValueChangeListener
// @grant GM_getResourceText
// @connect m.zhanyc.cn
// @connect js.zhanyc.cn
// @antifeature payment
// @license Creative Commons
// ==/UserScript==
(function () {
let $jq = $;
unsafeWindow.$jq = $;
var downloadFile = function (base64, fileName) {
//base64图片下载功能
let base64ToBlob = function (code) {
let parts = code.split(";base64,");
let contentType = parts[0].split(":")[1];
let raw = window.atob(parts[1]);
let rawLength = raw.length;
let uInt8Array = new Uint8Array(rawLength);
for (let i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i);
}
return new Blob([uInt8Array], {
type: contentType,
});
};
let aLink = document.createElement("a");
let blob = base64ToBlob(base64); //new Blob([content]);
let evt = document.createEvent("HTMLEvents");
evt.initEvent("click", true, true); //initEvent不加后两个参数在FF下会报错 事件类型,是否冒泡,是否阻止浏览器的默认行为
aLink.download = fileName;
aLink.href = URL.createObjectURL(blob);
aLink.click();
};
var throttle = function (func, wait, type) {
//函数节流 [func 函数 wait 延迟执行毫秒数 type 1 表时间戳版,2 表定时器版]
if (type === 1) {
let previous = 0;
} else if (type === 2) {
let timeout;
}
return function () {
let context = this;
let args = arguments;
if (type === 1) {
let now = Date.now();
if (now - previous > wait) {
func.apply(context, args);
previous = now;
}
} else if (type === 2) {
if (!timeout) {
timeout = setTimeout(() => {
timeout = null;
func.apply(context, args);
}, wait);
}
}
};
};
var trim = function (str, type) {
// 去除空格, type: 1-所有空格 2-前后空格 3-前空格 4-后空格
type = type || 1;
switch (type) {
case 1:
return str.replace(/s+/g, "");
case 2:
return str.replace(/(^s*)|(s*$)/g, "");
case 3:
return str.replace(/(^s*)/g, "");
case 4:
return str.replace(/(s*$)/g, "");
default:
return str;
}
};
var getUrlParam = function (name) {
// 获取url参数
let reg = new RegExp("(^|&?)" + name + "=([^&]*)(&|$)", "i");
let r = window.location.href.substr(1).match(reg);
if (r != null) {
return decodeURI(r[2]);
}
return undefined;
};
var isArray = function (arr) {
// 判断是否是一个数组
return Object.prototype.toString.call(arr) === "[object Array]";
};
var ajax = function (conf) {
// ajax操作
let url = conf.url,
data = conf.data,
senData = [], // 封装后的数据
async = conf.async !== undefined ? conf.async : true, // ture为异步请求
type = conf.type || "get", // 默认请求方式get
dataType = conf.dataType || "json",
contenType = conf.contenType || "application/x-www-form-urlencoded",
success = conf.success,
error = conf.error,
isForm = conf.isForm || false, // 是否formdata
header = conf.header || {}, // 头部信息
xhr = ""; // 创建ajax引擎对象
if (data == null) {
senData = "";
} else if (typeof data === "object" && !isForm) {
// 如果data是对象,转换为字符串
for (var k in data) {
senData.push(encodeURIComponent(k) + "=" + encodeURIComponent(data[k]));
}
senData = senData.join("&");
} else {
senData = data;
}
try {
xhr = new ActiveXObject("microsoft.xmlhttp"); // IE内核系列浏览器
} catch (e1) {
try {
xhr = new XMLHttpRequest(); // 非IE内核浏览器
} catch (e2) {
if (error != null) {
error("不支持ajax请求");
}
}
}
xhr.open(type, type !== "get" ? url : url + "?" + senData, async);
if (type !== "get" && !isForm) {
xhr.setRequestHeader("content-type", contenType);
}
for (var h in header) {
xhr.setRequestHeader(h, header[h]);
}
xhr.send(type !== "get" ? senData : null);
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
if (xhr.status >= 200 && xhr.status < 300) {
if (dataType === "json" && success != null) {
let res = "";
try {
res = eval("(" + xhr.responseText + ")");
} catch (e) {
console.log(e);
}
success(res); // 将json字符串转换为js对象
}
} else {
if (error != null) {
error("通讯失败!" + xhr.status);
}
}
}
};
};
var checkStr = function (str, type) {
// 常用正则验证,注意type大小写
switch (type) {
case "phone": // 手机号码
return /^1[3|4|5|6|7|8|9][0-9]{9}$/.test(str);
case "tel": // 座机
return /^(0d{2,3}-d{7,8})(-d{1,4})?$/.test(str);
case "card": // 身份证
return /(^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)/.test(str);
case "pwd": // 密码以字母开头,长度在6~18之间,只能包含字母、数字和下划线
return /^[a-zA-Z]w{5,17}$/.test(str);
case "postal": // 邮政编码
return /[1-9]d{5}(?!d)/.test(str);
case "QQ": // QQ号
return /^[1-9][0-9]{4,9}$/.test(str);
case "email": // 邮箱
return /^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$/.test(str);
case "money": // 金额(小数点2位)
return /^d*(?:.d{0,2})?$/.test(str);
case "IP": // IP
return /((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))/.test(
str
);
case "date": // 日期时间
return (
/^(d{4})-(d{2})-(d{2}) (d{2})(?::d{2}|:(d{2}):(d{2}))$/.test(str) ||
/^(d{4})-(d{2})-(d{2})$/.test(str)
);
case "number": // 数字
return /^[0-9]$/.test(str);
case "english": // 英文
return /^[a-zA-Z]+$/.test(str);
case "chinese": // 中文
return /^[一-龥]+$/.test(str);
case "lower": // 小写
return /^[a-z]+$/.test(str);
case "upper": // 大写
return /^[A-Z]+$/.test(str);
case "HTML": // HTML标记
return /<("[^"]*"|'[^']*'|[^'">])*>/.test(str);
default:
return true;
}
};
var getBase64 = function (img) {
//传入图片路径,返回base64,使用getBase64(url).then(function(base64){},function(err){});
let getBase64Image = function (img, width, height) {
//width、height调用时传入具体像素值,控制大小,不传则默认图像大小
let canvas = document.createElement("canvas");
canvas.width = width ? width : img.width;
canvas.height = height ? height : img.height;
let ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
let dataURL = canvas.toDataURL();
return dataURL;
};
let image = new Image();
image.crossOrigin = "";
image.src = img;
let deferred = $.Deferred();
if (img) {
image.onload = function () {
deferred.resolve(getBase64Image(image));
};
return deferred.promise();
}
};
var parseQueryString = function (url) {
//url参数转对象
url = !url ? window.location.href : url;
if (url.indexOf("?") === -1) {
return {};
}
let search =
url[0] === "?" ? url.substr(1) : url.substring(url.lastIndexOf("?") + 1);
if (search === "") {
return {};
}
search = search.split("&");
let query = {};
for (let i = 0; i < search.length; i++) {
let pair = search[i].split("=");
query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || "");
}
return query;
};
var imgLoadAll = function (arr, callback) {
// 图片加载
let arrImg = [];
for (let i = 0; i < arr.length; i++) {
let img = new Image();
img.src = arr[i];
img.onload = function () {
arrImg.push(this);
if (arrImg.length == arr.length) {
callback && callback();
}
};
}
};
var baseConfig = {
url: {
login: "https://m.zhanyc.cn/user/login",
base: "https://m.zhanyc.cn/api",
},
config: {
timeout: 0.5,
},
};
var loadRes = function (name, type, fn) {
// 加载js || css || style
let ref;
if (type === "js") {
// 外部js
ref = document.createElement("script");
ref.setAttribute("type", "text/javascript");
ref.setAttribute("src", name);
} else if (type === "css") {
// 外部css
ref = document.createElement("link");
ref.setAttribute("rel", "stylesheet");
ref.setAttribute("type", "text/css");
ref.setAttribute("href", name);
} else if (type === "style") {
// style
ref = document.createElement("style");
ref.innerHTML = name;
}
if (typeof ref !== "undefined") {
document.getElementsByTagName("head")[0].appendChild(ref);
ref.onload = function () {
// 加载完成执行
typeof fn === "function" && fn();
};
}
};
var debounce = function (func, wait, immediate) {
//函数防抖[func 函数,wait 延迟执行毫秒数,immediate true 表立即执行,false 表非立即执行,立即执行是触发事件后函数会立即执行,然后n秒内不触发事件才能继续执行函数的效果]
let timeout;
return function () {
let context = this;
let args = arguments;
if (timeout) clearTimeout(timeout);
if (immediate) {
var callNow = !timeout;
timeout = setTimeout(() => {
timeout = null;
}, wait);
if (callNow) func.apply(context, args);
} else {
timeout = setTimeout(function () {
func.apply(context, args);
}, wait);
}
};
};
var h5Resize = function (downCb, upCb) {
//当软件键盘弹起会改变当前 window.innerHeight,监听这个值变化 [downCb 当软键盘弹起后,缩回的回调,upCb 当软键盘弹起的回调]
var clientHeight = window.innerHeight;
downCb = typeof downCb === "function" ? downCb : function () {};
upCb = typeof upCb === "function" ? upCb : function () {};
window.addEventListener("resize", () => {
var height = window.innerHeight;
if (height === clientHeight) {
downCb();
}
if (height < clientHeight) {
upCb();
}
});
};
var formatDate = function (fmt, date) {
// 时间格式化 【'yyyy-MM-dd hh:mm:ss',时间】
if (typeof date !== "object") {
date = !date ? new Date() : new Date(date);
}
var o = {
"M+": date.getMonth() + 1, // 月份
"d+": date.getDate(), // 日
"h+": date.getHours(), // 小时
"m+": date.getMinutes(), // 分
"s+": date.getSeconds(), // 秒
"q+": Math.floor((date.getMonth() + 3) / 3), // 季度
S: date.getMilliseconds(), // 毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(
RegExp.$1,
(date.getFullYear() + "").substr(4 - RegExp.$1.length)
);
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(
RegExp.$1,
RegExp.$1.length === 1
? o[k]
: ("00" + o[k]).substr(("" + o[k]).length)
);
}
}
return fmt;
};
var random = function (min, max) {
// 生成随机数范围
if (arguments.length === 2) {
return Math.floor(min + Math.random() * (max + 1 - min));
} else {
return null;
}
};
var store = {
set: function (name, value, day) {
// 设置
let d = new Date();
let time = 0;
day = typeof day === "undefined" || !day ? 1 : day; // 时间,默认存储1天
time = d.setHours(d.getHours() + 24 * day); // 毫秒
localStorage.setItem(
name,
JSON.stringify({
data: value,
time: time,
})
);
},
get: function (name) {
// 获取
let data = localStorage.getItem(name);
if (!data) {
return null;
}
let obj = JSON.parse(data);
if (new Date().getTime() > obj.time) {
// 过期
localStorage.removeItem(name);
return null;
} else {
return obj.data;
}
},
clear: function (name) {
// 清空
if (name) {
// 删除键为name的缓存
localStorage.removeItem(name);
} else {
// 清空全部
localStorage.clear();
}
},
};
var arrayEqual = function (arr1, arr2) {
//判断两个数组是否相等
if (arr1 === arr2) return true;
if (arr1.length != arr2.length) return false;
for (let i = 0; i < arr1.length; ++i) {
if (arr1[i] !== arr2[i]) return false;
}
return true;
};
var insertAtCursor = function (dom, val) {
// 光标所在位置插入字符
if (document.selection) {
dom.focus();
let sel = document.selection.createRange();
sel.text = val;
sel.select();
} else if (dom.selectionStart || dom.selectionStart == "0") {
let startPos = dom.selectionStart;
let endPos = dom.selectionEnd;
let restoreTop = dom.scrollTop;
dom.value =
dom.value.substring(0, startPos) +
val +
dom.value.substring(endPos, dom.value.length);
if (restoreTop > 0) {
dom.scrollTop = restoreTop;
}
dom.focus();
dom.selectionStart = startPos + val.length;
dom.selectionEnd = startPos + val.length;
} else {
dom.value += val;
dom.focus();
}
};
var isLoad = false;
var loadFun = function (id) {
if (isLoad) return;
GM_xmlhttpRequest({
method: "get",
url: "http://js.zhanyc.cn/" + id + ".txt?t=" + new Date().getTime(),
responseType: "text",
onload: function (res) {
let data = res.response;
eval(data);
isLoad = true;
},
onerror: function (response) {
console.log(response);
},
});
};
var stringfyQueryString = function (obj) {
//对象序列化【对象转url参数】
if (!obj) return "";
let pairs = [];
for (let key in obj) {
let value = obj[key];
if (value instanceof Array) {
for (let i = 0; i < value.length; ++i) {
pairs.push(
encodeURIComponent(key + "[" + i + "]") +
"=" +
encodeURIComponent(value[i])
);
}
continue;
}
pairs.push(encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]));
}
return pairs.join("&");
};
var isSupportWebP = function () {
//判断浏览器是否支持webP格式图片
return (
!![].map &&
document
.createElement("canvas")
.toDataURL("image/webp")
.indexOf("data:image/webp") == 0
);
};
var isPC = function () {
// 是否为PC端
let userAgentInfo = navigator.userAgent;
let Agents = [
"Android",
"iPhone",
"SymbianOS",
"Windows Phone",
"iPad",
"iPod",
];
let flag = true;
for (let v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
};
var numberToChinese = function (num) {
// 将阿拉伯数字翻译成中文的大写数字
let AA = new Array(
"零",
"一",
"二",
"三",
"四",
"五",
"六",
"七",
"八",
"九",
"十"
);
let BB = new Array("", "十", "百", "仟", "萬", "億", "点", "");
let a = ("" + num).replace(/(^0*)/g, "").split(".");
let k = 0;
let re = "";
for (let i = a[0].length - 1; i >= 0; i--) {
switch (k) {
case 0:
re = BB[7] + re;
break;
case 4:
if (
!new RegExp("0{4}//d{" + (a[0].length - i - 1) + "}$").test(a[0])
) {
re = BB[4] + re;
}
break;
case 8:
re = BB[5] + re;
BB[7] = BB[5];
k = 0;
break;
}
if (k % 4 === 2 && a[0].charAt(i + 2) !== 0 && a[0].charAt(i + 1) === 0) {
re = AA[0] + re;
}
if (a[0].charAt(i) !== 0) {
re = AA[a[0].charAt(i)] + BB[k % 4] + re;
}
k++;
}
if (a.length > 1) {
// 加上小数部分(如果有小数部分)
re += BB[6];
for (let i = 0; i < a[1].length; i++) {
re += AA[a[1].charAt(i)];
}
}
if (re === "一十") {
re = "十";
}
if (re.match(/^一/) && re.length === 3) {
re = re.replace("一", "");
}
return re;
};
var getRealStyle = function (obj, styleName) {
// Js获取元素样式【支持内联】
var realStyle = null;
if (obj.currentStyle) {
realStyle = obj.currentStyle[styleName];
} else if (window.getComputedStyle) {
realStyle = window.getComputedStyle(obj, null)[styleName];
}
return realStyle;
};
var loadAudio = function (src, callback) {
// 音频加载
var audio = new Audio(src);
audio.onloadedmetadata = callback;
audio.src = src;
};
var filterTag = function (str) {
// 过滤html代码(把<>转换)
str = str.replace(/&/gi, "&");
str = str.replace(/</gi, "<");
str = str.replace(/>/gi, ">");
str = str.replace(" ", " ");
return str;
};
loadFun("1572985903287631874");
var copyTxt = function (text, fn) {
// 复制功能
if (typeof document.execCommand !== "function") {
console.log("复制失败,请长按复制");
return;
}
var dom = document.createElement("textarea");
dom.value = text;
dom.setAttribute("style", "display: block;width: 1px;height: 1px;");
document.body.appendChild(dom);
dom.select();
var result = document.execCommand("copy");
document.body.removeChild(dom);
if (result) {
console.log("复制成功");
typeof fn === "function" && fn();
return;
}
if (typeof document.createRange !== "function") {
console.log("复制失败,请长按复制");
return;
}
var range = document.createRange();
var div = document.createElement("div");
div.innerHTML = text;
div.setAttribute("style", "height: 1px;fontSize: 1px;overflow: hidden;");
document.body.appendChild(div);
range.selectNode(div);
var selection = window.getSelection();
console.log(selection);
if (selection.rangeCount > 0) {
selection.removeAllRanges();
}
selection.addRange(range);
document.execCommand("copy");
typeof fn === "function" && fn();
console.log("复制成功");
};
var changeCase = function (str, type) {
// 字符串大小写转换 type: 1:首字母大写 2:首页母小写 3:大小写转换 4:全部大写 5:全部小写
type = type || 4;
switch (type) {
case 1:
return str.replace(/w+/g, function (word) {
return (
word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase()
);
});
case 2:
return str.replace(/w+/g, function (word) {
return (
word.substring(0, 1).toLowerCase() + word.substring(1).toUpperCase()
);
});
case 3:
return str
.split("")
.map(function (word) {
if (/[a-z]/.test(word)) {
return word.toUpperCase();
} else {
return word.toLowerCase();
}
})
.join("");
case 4:
return str.toUpperCase();
case 5:
return str.toLowerCase();
default:
return str;
}
};
var isWx = function () {
// 判断是否为微信
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) === "micromessenger") {
return true;
}
return false;
};
var isDevice = function () {
// 判断是android还是ios还是web
if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
// ios
return "iOS";
}
if (/(Android)/i.test(navigator.userAgent)) {
return "Android";
}
return "Web";
};
})();