@@ -71,34 +71,47 @@ if(!tracyExceptionLoader) {
71
71
}
72
72
} ;
73
73
74
- document . addEventListener ( 'DOMContentLoaded' , function ( ) {
75
- // click event added to body because of links on bluescreen
76
- const htmlElement = document . documentElement ;
77
- var doc = htmlElement . classList . contains ( 'tracy-bs-visible' ) ? document . body : document ;
78
- doc . addEventListener ( "click" , function ( e ) {
79
- if ( e . target ) {
80
- var curEl = e . target ;
81
- while ( curEl && curEl . tagName != "A" ) {
82
- curEl = curEl . parentNode ;
83
- }
84
- if ( curEl && curEl . href && curEl . href . indexOf ( "tracyexception://" ) !== - 1 ) {
85
- e . preventDefault ( ) ;
86
- var queryStr = curEl . href . split ( '?' ) [ 1 ] ;
87
- var fullFilePath = tracyExceptionLoader . getFileLineVars ( queryStr , "f" ) ;
88
- tracyExceptionLoader . loadExceptionFile ( fullFilePath ) ;
89
- }
74
+ ( function initTracyExceptionHandler ( ) {
75
+ function setupTracyClickHandler ( ) {
76
+ const htmlElement = document . documentElement ;
77
+ const doc = htmlElement . classList . contains ( 'tracy-bs-visible' ) ? document . body : document ;
90
78
91
- let tracyExceptionFiles = document . getElementById ( "tracyExceptionFiles" ) ;
92
- if ( tracyExceptionFiles ) {
93
- let tracyExceptions = tracyExceptionFiles . getElementsByTagName ( "li" ) ;
94
- var length = tracyExceptions . length ;
95
- for ( var i = 0 ; i < length ; i ++ ) {
96
- var queryStr = tracyExceptions [ i ] . getElementsByTagName ( "a" ) [ 0 ] . href . split ( '?' ) [ 1 ] ;
97
- var currentFilePath = decodeURI ( queryStr . replace ( 'f=' , '' ) . replace ( '&l=1' , '' ) ) . replace ( 'site/assets/logs/tracy/' , '' ) ;
98
- tracyExceptions [ i ] . getElementsByTagName ( "a" ) [ 0 ] . className = document . getElementById ( 'panelTitleFilePath' ) . innerHTML == currentFilePath ? "active" : "" ;
79
+ doc . addEventListener ( "click" , function ( e ) {
80
+ if ( e . target ) {
81
+ let curEl = e . target ;
82
+
83
+ while ( curEl && curEl . tagName !== "A" ) {
84
+ curEl = curEl . parentNode ;
85
+ }
86
+
87
+ if ( curEl && curEl . href && curEl . href . indexOf ( "tracyexception://" ) !== - 1 ) {
88
+ e . preventDefault ( ) ;
89
+ const queryStr = curEl . href . split ( '?' ) [ 1 ] ;
90
+ const fullFilePath = tracyExceptionLoader . getFileLineVars ( queryStr , "f" ) ;
91
+ tracyExceptionLoader . loadExceptionFile ( fullFilePath ) ;
92
+ }
93
+
94
+ const tracyExceptionFiles = document . getElementById ( "tracyExceptionFiles" ) ;
95
+ if ( tracyExceptionFiles ) {
96
+ const tracyExceptions = tracyExceptionFiles . getElementsByTagName ( "li" ) ;
97
+ const length = tracyExceptions . length ;
98
+ for ( let i = 0 ; i < length ; i ++ ) {
99
+ const queryStr = tracyExceptions [ i ] . getElementsByTagName ( "a" ) [ 0 ] . href . split ( '?' ) [ 1 ] ;
100
+ const currentFilePath = decodeURI ( queryStr . replace ( 'f=' , '' ) . replace ( '&l=1' , '' ) ) . replace ( 'site/assets/logs/tracy/' , '' ) ;
101
+ tracyExceptions [ i ] . getElementsByTagName ( "a" ) [ 0 ] . className =
102
+ document . getElementById ( 'panelTitleFilePath' ) . innerHTML === currentFilePath ? "active" : "" ;
103
+ }
99
104
}
100
105
}
101
- }
102
- } ) ;
103
- } ) ;
106
+ } ) ;
107
+ }
108
+
109
+ if ( document . readyState === 'loading' ) {
110
+ document . addEventListener ( 'DOMContentLoaded' , setupTracyClickHandler ) ;
111
+ } else {
112
+ // DOM already loaded
113
+ setupTracyClickHandler ( ) ;
114
+ }
115
+ } ) ( ) ;
116
+
104
117
}
0 commit comments