@@ -5,20 +5,25 @@ window.addEventListener("DOMContentLoaded", () => {
55
66function setupTabBar ( el , contentEl ) {
77 let selectedIdx = 0 ;
8- selectTabItem ( el , contentEl , selectedIdx ) ;
8+ let anchor = window . location . hash . substring ( 1 ) ;
9+ var tabs = { } ;
910 for ( let idx = 0 ; idx < el . children . length ; idx ++ ) {
11+ tabs [ el . children [ idx ] . innerText ] = idx ;
1012 el . children [ idx ] . addEventListener ( "click" , ( e ) => {
1113 e . preventDefault ( ) ;
12- selectTabItem ( el , contentEl , idx ) ;
14+ selectTabItem ( el , contentEl , idx , false ) ;
1315 } ) ;
1416 }
17+ if ( anchor in tabs ) selectedIdx = tabs [ anchor ] ;
18+ selectTabItem ( el , contentEl , selectedIdx , true ) ;
1519}
1620
17- function selectTabItem ( tabBar , content , selectedIdx ) {
21+ function selectTabItem ( tabBar , content , selectedIdx , init ) {
1822 for ( let idx = 0 ; idx < tabBar . children . length ; idx ++ ) {
1923 tabBar . children [ idx ] . classList . remove ( "active" ) ;
2024 content . children [ idx ] . classList . add ( "hidden" ) ;
2125 }
2226 tabBar . children [ selectedIdx ] . classList . add ( "active" ) ;
2327 content . children [ selectedIdx ] . classList . remove ( "hidden" ) ;
28+ if ( ! init ) history . replaceState ( { } , '' , '#' + tabBar . children [ selectedIdx ] . innerText ) ;
2429}
0 commit comments