-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathscript.js
More file actions
39 lines (34 loc) · 1.58 KB
/
script.js
File metadata and controls
39 lines (34 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
document.addEventListener('DOMContentLoaded', ()=>{
// Header
const header = document.querySelector('#cpp-head-first');
header.style.cursor = 'pointer';
header.onclick = ()=>document.location.href = '/';
// Fix Navbar Position
document.querySelector('#content')?.prepend(document.querySelector('.t-navbar') ?? '')
// Switch language button
const langContentCache = {}
const runLanguagePreload = async (languageToPreload = (refinedCppConfig.currentLang === 'en' ? 'zh' : 'en')) => {
const elem = document.createElement('div')
elem.innerHTML = await fetch('?lang='+languageToPreload).then(v=>v.text())
langContentCache[languageToPreload] = elem.querySelector('#content').innerHTML
}
runLanguagePreload();
const contentDom = document.querySelector('#content')
langContentCache[refinedCppConfig.currentLang] = contentDom.innerHTML
const tSwitchLang = ()=>refinedCppConfig.currentLang === 'zh' ? 'English' : '中文'
const btnSwitch = document.querySelector('#ca-nstab-main > span')
btnSwitch.innerHTML = `<div style="
font-size: 12px;
cursor: pointer;
" class="btnSwitchLang">${tSwitchLang()}</div>`
btnSwitch.onclick = () => {
const targetLang = refinedCppConfig.currentLang === 'zh' ? 'en' : 'zh';
document.cookie = `prefer-lang=${targetLang}`
if (langContentCache[targetLang]) {
refinedCppConfig.currentLang = targetLang
contentDom.innerHTML = langContentCache[targetLang]
document.querySelector('.btnSwitchLang').innerText = tSwitchLang();
} else
document.location.reload()
}
})