Greasy Fork is available in English.
Glarity enhance
当前为
// ==UserScript==
// @name Glarity helper
// @namespace http://tampermonkey.net/
// @version 0.0.2
// @description Glarity enhance
// @description:zh-cn Glarity 辅助功能
// @author yoyo
// @match http://*/*
// @match https://*/*
// @grant none
// @license MIT
// ==/UserScript==
;(() => {
let hostElement, shadowRoot
let hasHandleGlaritySummaryWidth = false
function handleGlaritySummary() {
if (hasHandleGlaritySummaryWidth) return
const hostElement = document.querySelector('.glarity--summary')
if (hostElement && hostElement.shadowRoot) {
const targetElement = hostElement.shadowRoot.querySelector(
'.glarity---drawer-content-wrapper',
)
if (targetElement) {
targetElement.style.width = '800px'
hasHandleGlaritySummaryWidth = true
console.log('hasHandleGlaritySummaryWidth 修改成功')
} else {
console.log('未找到具有glarity---drawer-content-wrapper类的元素')
}
} else {
console.log('未找到具有glarity--summary类的元素或此元素没有Shadow DOM')
}
}
function addSummaryButton() {
const newButton = document.createElement('div')
newButton.onclick = () => {
const iconElement = shadowRoot.querySelector('.glarity-summary-icon')
shadowRoot.querySelector('.glarity---drawer-content-wrapper').style.display = 'unset'
const btns = shadowRoot.querySelectorAll('.glarity---drawer-content-wrapper .glarity---btn')
const summaryBtn = [...btns].find((a) => a.innerText === '总结页面')
if (summaryBtn) {
const clickEvent = new MouseEvent('click', { bubbles: true, cancelable: true })
summaryBtn.dispatchEvent(clickEvent)
} else {
console.log('找不到总结页面按钮')
}
}
newButton.classList.add('glarity--summaryButton')
newButton.innerHTML = `
<div class="translate-container glarity---inline-flex glarity---px-[4px] hover:glarity---bg-[#3771e9]"><svg width="20" height="16" viewBox="0 0 20 16" fill="none" xmlns="http://www.w3.org/2000/svg"><title>总结</title><path d="M1 8a7 7 0 0 1 7-7h4a7 7 0 1 1 0 14H8a7 7 0 0 1-7-7Z" fill="#389AFC"></path><text x="50%" y="55%" fill="white" text-anchor="middle" dominant-baseline="middle" font-size="9">S</text></svg></div>
`
const translateButton = shadowRoot.querySelector('.glarity--shadowroot .glarity--translate')
if (translateButton) {
translateButton.parentNode.insertBefore(newButton, translateButton.nextSibling)
} else {
console.log('找不到翻译按钮')
}
}
function onGlarityLoaded() {
hostElement = document.querySelector('.glarity--summary')
shadowRoot = hostElement.shadowRoot
if (!(hostElement && hostElement.shadowRoot)) {
return
}
console.log('==glarity装载完毕==')
handleGlaritySummary()
addSummaryButton()
setTimeout(() => {
handleGlaritySummary()
// addSummaryButton()
}, 1000)
}
const observer = new MutationObserver((mutationsList) => {
for (const mutation of mutationsList) {
if (mutation.addedNodes[0]?.classList.contains('glarity--summary')) {
onGlarityLoaded()
}
}
})
observer.observe(document.documentElement, { childList: true, subtree: true })
window.addEventListener('load', () => {
onGlarityLoaded()
})
})()