-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebsiteScript.js
More file actions
48 lines (45 loc) · 1.59 KB
/
Copy pathwebsiteScript.js
File metadata and controls
48 lines (45 loc) · 1.59 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
40
41
42
43
44
45
46
47
48
(function(){
const routes = ['esa1','esa2','esa3','esa4','esa5','esa6','esa7','esa8','esa9','esa10'];
const loaded = new Set();
const scriptMap = {
esa1: 'esa1script.js',
esa2: 'esa2script.js',
esa3: 'esa3script.js',
esa4: 'esa4script.js',
esa5: 'esa5script.js',
esa6: 'esa6script.js',
esa7: 'esa7script.js',
esa8: 'esa8script.js',
esa9: 'esa9script.js',
esa10: 'esa10script.js'
};
function setActiveTab(id){
routes.forEach(r=>{
const a = document.getElementById('tab-' + r);
if (!a) return;
if (r === id) a.setAttribute('aria-current','page'); else a.removeAttribute('aria-current');
});
}
function show(id){
routes.forEach(r=>{
const sec = document.getElementById(r);
if (!sec) return;
if (r === id) sec.removeAttribute('hidden'); else sec.setAttribute('hidden','');
});
setActiveTab(id);
if (!loaded.has(id) && scriptMap[id]) {
const s = document.createElement('script');
s.src = scriptMap[id];
s.defer = true;
s.onload = ()=> loaded.add(id);
s.onerror = ()=> console.error('Konnte Script nicht laden:', scriptMap[id]);
document.body.appendChild(s);
}
}
function currentRoute(){
const h = (location.hash || '').replace('#','').toLowerCase();
return routes.includes(h) ? h : 'esa1';
}
window.addEventListener('hashchange', ()=> show(currentRoute()));
show(currentRoute());
})();