User:Bluedeck/~/instant-reply/main.js
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google Chrome、Firefox、Microsoft Edge及Safari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
function init() {
const STOP_PARAM = 25_000
let ctr_ut_link = 0
let last_update = Date.now()
const known_anchors = new Map()
const init_interval = 0//setInterval(init_core, 250)
setTimeout(init_core, 0)
function init_core() {
const ut_eles = get_utalk_anchors()
ut_eles.forEach(ele => known_anchors.set(ele, "known"))
ut_eles.filter(ele => !known_anchors.has(ele)).forEach(ele => insert_ui(ele))
if (ut_eles.length !== ctr_ut_link) {
console.log(ut_eles.length, ctr_ut_link)
ctr_ut_link = ut_eles.length
last_update = Date.now()
}
else {
console.log(Date.now() - last_update, ctr_ut_link)
if (Date.now() - last_update > STOP_PARAM) {
clearInterval(init_interval)
}
}
}
}
function insert_ui(anchor_ele) {
anchor_ele.insertAdjacentHTML('afterbegin', '<div>37</div>')
}
function split_at_first(str, search) {
const index = str.indexOf(search)
if (index === -1) { return [str, ""] }
else { return [str.substr(0, index), str.substr(index + search.length)] }
}
function get_utalk_anchors() {
const t1 = [...document.querySelectorAll(".userlink")].filter(el => split_at_first(el.href.toLowerCase(), "/wiki/")[1].substr(0, 10) === "user_talk:")
return t1
}
init()