通过 node_name 直接定位需要点击的节点
This commit is contained in:
@ -5,20 +5,21 @@
|
|||||||
// @description Jumpserver Web终端 扩展
|
// @description Jumpserver Web终端 扩展
|
||||||
// @author MiaoWoo
|
// @author MiaoWoo
|
||||||
// @match https://jump.miaowoo.cc/luna/*
|
// @match https://jump.miaowoo.cc/luna/*
|
||||||
|
// @match https://jump.c5mc.cn/luna/*
|
||||||
// @grant none
|
// @grant none
|
||||||
// ==/UserScript==
|
// ==/UserScript==
|
||||||
|
|
||||||
(async function () {
|
(async function () {
|
||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
|
const nodeMaps = {
|
||||||
|
'jump.miaowoo.cc': ['公网节点', '内网节点', '下宕头', '画了个圈', 'pve8']
|
||||||
|
}
|
||||||
|
|
||||||
async function sleep(ms) {
|
async function sleep(ms) {
|
||||||
return new Promise(resolve => setTimeout(resolve, ms))
|
return new Promise(resolve => setTimeout(resolve, ms))
|
||||||
}
|
}
|
||||||
var version = document.querySelector('.footer-version')
|
window.onresize = async function adjust() {
|
||||||
while (!(version = document.querySelector('.footer-version'))) {
|
|
||||||
await sleep(50)
|
|
||||||
}
|
|
||||||
version.innerHTML = version.innerHTML.replace('Version', '')
|
|
||||||
async function adjust() {
|
|
||||||
await sleep(10)
|
await sleep(10)
|
||||||
var splitter_bar = document.querySelector('.ant-splitter-bar')
|
var splitter_bar = document.querySelector('.ant-splitter-bar')
|
||||||
var left = splitter_bar.previousElementSibling
|
var left = splitter_bar.previousElementSibling
|
||||||
@ -26,15 +27,33 @@
|
|||||||
var right = splitter_bar.nextElementSibling
|
var right = splitter_bar.nextElementSibling
|
||||||
right.style.flexBasis = 'calc(88.5% - 0px)'
|
right.style.flexBasis = 'calc(88.5% - 0px)'
|
||||||
}
|
}
|
||||||
window.onresize = adjust
|
async function autotrigger(nodes = []) {
|
||||||
adjust()
|
for (const element of nodes) {
|
||||||
document.querySelector('.content-footer').remove()
|
let target = undefined
|
||||||
for (const element of ['#AssetTree_3_span', '#AssetTree_4_span', '#AssetTree_5_span', '#AssetTree_14_span', '#AssetTree_19_span']) {
|
while ((target = [...document.getElementsByClassName('node_name')].filter(function (e) {
|
||||||
let target = undefined
|
return e.innerText.startsWith(element)
|
||||||
while ((target = document.querySelector(element)) == undefined) {
|
})[0]) == undefined) {
|
||||||
|
await sleep(50)
|
||||||
|
}
|
||||||
|
await sleep(300)
|
||||||
|
target.click()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
async function waitReady() {
|
||||||
|
var version = document.querySelector('.footer-version')
|
||||||
|
while (!(version = document.querySelector('.footer-version'))) {
|
||||||
await sleep(50)
|
await sleep(50)
|
||||||
}
|
}
|
||||||
await sleep(300)
|
version.innerHTML = version.innerHTML.replace('Version', '')
|
||||||
target.click()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
await waitReady()
|
||||||
|
window.onresize()
|
||||||
|
document.querySelector('.content-footer').remove()
|
||||||
|
var trigger = nodeMaps[location.hostname]
|
||||||
|
if (trigger) autotrigger(trigger)
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
})()
|
})()
|
||||||
|
Reference in New Issue
Block a user