function sleep(time) {
return new Promise((resolve) => setTimeout(resolve, time));
}
async function getDom(sel) {
for (let i = 0; i < 100; i++) {
let dom = document.querySelector(sel);
if (dom) {
return dom;
} else {
await sleep(100);
}
}
}
async function getDomAll(sel) {
for (let i = 0; i < 100; i++) {
let dom = document.querySelectorAll(sel);
if (dom.length > 0) {
return dom;
} else {
await sleep(100);
}
}
}
function addNewStyle(newStyle) {
let styleElement = document.getElementById('styles_js');
if (!styleElement) {
styleElement = document.createElement('style');
styleElement.type = 'text/css';
styleElement.id = 'styles_js';
document.getElementsByTagName('head')[0].appendChild(styleElement);
}
styleElement.appendChild(document.createTextNode(newStyle));
}
function getQueryStringByUrl(url, name) {
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
let r = url.substring(url.indexOf('?') + 1).match(reg); //获取url中"?"符后的字符串并正则匹配
let context = "";
if (r != null)
context = r[2];
reg = null;
r = null;
return context == null || context === "" || context === "undefined" ? "" : decodeURI(context);
}
//直接读取浏览器url
function getQueryString(name) {
return getQueryStringByUrl(location.href, name);
}
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min) + min); //The maximum is exclusive and the minimum is inclusive
}
function getOneFromArray(arr) {
return arr[getRandomInt(0, arr.length)];
}
// 该函数用于创建一个
text会被添加到这里
ele.innerText = text; // attrs 的类型是一个 map for (let k in attrs) { // 遍历 attrs, 给节点 ele 添加我们想要的属性 ele.setAttribute(k, attrs[k]); } // 返回节点 return ele; } function myCopy(inner_html) { let tmpId = "tmpId123123" + getRandomInt(1, 10000); let a = document.createElement('div'); a.id = tmpId; a.innerHTML = inner_html document.querySelector('body').appendChild(a) let range = document.createRange(); range.selectNode(document.querySelector("#" + tmpId)); // 清除选择 window.getSelection().removeAllRanges(); window.getSelection().addRange(range); console.log('复制成功'); document.execCommand('copy'); // 清除选择 window.getSelection().removeAllRanges(); document.querySelector("#" + tmpId).remove(); } //自动关闭提示框 function myAlert(str, sec) { let bordercolor = "#336699";//提示窗口的边框颜色 let sWidth, sHeight; //获取当前窗口尺寸 sWidth = document.body.offsetWidth; sHeight = document.body.offsetHeight; //背景div const bgObj = document.createElement("div"); bgObj.setAttribute('id', 'alertbgDiv'); bgObj.style.position = "fixed"; bgObj.style.top = "0"; bgObj.style.background = "#E8E8E8"; bgObj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75"; bgObj.style.opacity = "0.6"; bgObj.style.left = "0"; bgObj.style.width = sWidth + "px"; bgObj.style.height = sHeight + "px"; bgObj.style.zIndex = "10000"; document.body.appendChild(bgObj); //创建提示窗口的div const msgObj = document.createElement("div"); msgObj.setAttribute("id", "alertmsgDiv"); msgObj.setAttribute("align", "center"); msgObj.style.background = "white"; msgObj.style.border = "1px solid " + bordercolor; msgObj.style.position = "fixed"; msgObj.style.left = "50%"; msgObj.style.font = "15px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif"; //窗口距离左侧和顶端的距离 msgObj.style.marginLeft = "-225px"; //窗口被卷去的高+(屏幕可用工作区高/2)-150 msgObj.style.top = document.body.scrollTop + (window.screen.availHeight / 2) - 150 + "px"; msgObj.style.textAlign = "center"; msgObj.style.lineHeight = "25px"; msgObj.style.zIndex = "10001"; msgObj.style.minWidth = "300px"; document.body.appendChild(msgObj); //提示信息标题 const title = document.createElement("h4"); title.setAttribute("id", "alertmsgTitle"); title.setAttribute("align", "left"); title.style.margin = "0"; title.style.padding = "3px"; title.style.background = bordercolor; title.style.filter = "progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100);"; title.style.opacity = "0.75"; title.style.border = "1px solid " + bordercolor; title.style.font = "12px Verdana, Geneva, Arial, Helvetica, sans-serif"; title.style.color = "white"; title.innerHTML = "提示信息"; document.getElementById("alertmsgDiv").appendChild(title); //提示信息 const txt = document.createElement("p"); txt.setAttribute("id", "msgTxt"); txt.style.margin = "16px 0"; txt.innerHTML = str; document.getElementById("alertmsgDiv").appendChild(txt); //设置关闭时间 window.setTimeout(() => { document.body.removeChild(document.getElementById("alertbgDiv")); document.getElementById("alertmsgDiv").removeChild(document.getElementById("alertmsgTitle")); document.body.removeChild(document.getElementById("alertmsgDiv")); }, sec * 1000); } function log(obj) { console.table(JSON.parse(JSON.stringify(obj))); } function addJSFile(js_url) { const eleScript = document.createElement("script"); eleScript.type = "text/javascript"; eleScript.src = js_url; document.getElementsByTagName("HEAD")[0].appendChild(eleScript); } function addJQ() { addJSFile("https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"); setInterval(() => { if (typeof (jQuery) == 'undefined') { addJSFile(""); } }, 200) } /** * 复制 * 需要添加:addJSFile("//cdn.bootcdn.net/ajax/libs/clipboard.js/2.0.11/clipboard.min.js") * @param text * @param uri */ function copyTextToClipboard(text,uri) { let copyFrom, agent, body; copyFrom = document.createElement("a"); copyFrom.setAttribute("id","target"); copyFrom.setAttribute("href",uri); copyFrom.innerHTML = text; agent = document.createElement("button"); body = document.getElementsByTagName('body')[0]; body.appendChild(copyFrom); body.appendChild(agent); // 麻烦:无法传入'.btn'元素 我们可以创建一个btn作为代理 let clipboard = new ClipboardJS(agent, { target: function() { return document.querySelector('#target'); } }); clipboard.on('success', function(e) { console.log(e); }); clipboard.on('error', function(e) { console.log(e); }); agent.click(); // copyFrom.focus(); // copyFrom.select(); // 问题所在 无法对copyFrom对象使用select()方法 // document.execCommand('copy'); // 采用Clipboard.js方案 body.removeChild(copyFrom); body.removeChild(agent); } function addLink(domSelector, link_str, linkUrl) { const eleScript = document.createElement("a"); eleScript.innerHTML = link_str.replaceAll(" ", " "); eleScript.href = linkUrl; document.querySelector(domSelector).appendChild(eleScript); }