Spaces:
Runtime error
Runtime error
| // 传入input标签的选择器与要写入的内容,写入内容通过input的change事件写入 | |
| function writeInput(selector, content) { | |
| const inputElement = document.querySelector(selector); | |
| const textToInput = content; | |
| // 删除输入框原本的值 | |
| inputElement.value = ''; | |
| // 模拟逐个字符输入 | |
| for (let i = 0; i < textToInput.length; i++) { | |
| const char = textToInput[i]; | |
| const keyCode = char.charCodeAt(0); | |
| // 触发 keydown 事件 | |
| const keydownEvent = new KeyboardEvent('keydown', { | |
| bubbles: true, | |
| cancelable: true, | |
| key: char, | |
| code: `Key${char.toUpperCase()}`, | |
| keyCode: keyCode, | |
| which: keyCode | |
| }); | |
| inputElement.dispatchEvent(keydownEvent); | |
| // 触发 keypress 事件 | |
| const keypressEvent = new KeyboardEvent('keypress', { | |
| bubbles: true, | |
| cancelable: true, | |
| key: char, | |
| code: `Key${char.toUpperCase()}`, | |
| keyCode: keyCode, | |
| which: keyCode | |
| }); | |
| inputElement.dispatchEvent(keypressEvent); | |
| // 更新输入框的值 | |
| inputElement.value += char; | |
| // 触发 input 事件 | |
| const inputEvent = new Event('input', { bubbles: true }); | |
| inputElement.dispatchEvent(inputEvent); | |
| // 触发 keyup 事件 | |
| const keyupEvent = new KeyboardEvent('keyup', { | |
| bubbles: true, | |
| cancelable: true, | |
| key: char, | |
| code: `Key${char.toUpperCase()}`, | |
| keyCode: keyCode, | |
| which: keyCode | |
| }); | |
| inputElement.dispatchEvent(keyupEvent); | |
| } | |
| } | |
| // 反复查找元素,直到找到为止,触发回调函数 | |
| function findElement(selector, callback) { | |
| const intervalid = setInterval(() => { | |
| const element = document.querySelector(selector); | |
| if (element) { | |
| clearInterval(intervalid); | |
| console.log("find element"); | |
| callback(element); | |
| // 在接下来的1秒内,每隔100毫触发一次回调函数 | |
| const intervalid2 = setInterval(() => { | |
| callback(element); | |
| }, 100); | |
| // 1秒后停止触发回调函数 | |
| setTimeout(() => { | |
| clearInterval(intervalid2); | |
| console.log("click"); | |
| document.querySelector("#query_button").click(); | |
| }, 2000); | |
| } | |
| }, 100); | |
| } | |
| // 获取当前页面的URL的参数date,如果没有则查看父页面的URL的参数date | |
| function getDate() { | |
| let date = new URLSearchParams(window.location.search).get('date'); | |
| if (!date) { | |
| date = new URLSearchParams(window.parent.location.search).get('date'); | |
| } | |
| console.log(date); | |
| if (date) { | |
| // 解析日期并转为YYYY-MM-DD格式 | |
| // 将日期按照非数字字符分割,然后取出前三个数字,转为字符串,不足两位的前面补0 | |
| const dataArr = date.match(/\d+/g); | |
| if (dataArr.length >= 6) { | |
| let start_date = dataArr.slice(0, 3).map(num => num.padStart(2, '0')); | |
| let end_date = dataArr.slice(3, 6).map(num => num.padStart(2, '0')); | |
| start_date[0] = start_date[0].padStart(4, '2025'); | |
| end_date[0] = end_date[0].padStart(4, '2025'); | |
| findElement("#start_date textarea", () => { | |
| writeInput("#start_date textarea", start_date.join('-')); | |
| writeInput("#end_date textarea", end_date.join('-')); | |
| }); | |
| } else { | |
| date = dataArr.map(num => num.padStart(2, '0')); | |
| date[0] = date[0].padStart(4, '2025'); | |
| date = date.join('-'); | |
| findElement("#start_date textarea", () => { | |
| writeInput("#start_date textarea", date); | |
| writeInput("#end_date textarea", date); | |
| }); | |
| } | |
| } | |
| } | |
| getDate(); |