@@ -85,25 +85,29 @@ <h1>Loading...</h1>
8585 </ div >
8686 </ div >
8787 < script >
88- window . onerror = function ( msg , url , line , col , error ) {
88+ // Capture phase listener to catch resource loading errors (404s)
89+ window . addEventListener ( 'error' , function ( e ) {
8990 const errorDiv = document . getElementById ( 'global-error' ) ;
9091 if ( errorDiv ) {
9192 errorDiv . style . display = 'block' ;
92- errorDiv . innerHTML = `<strong>Global Error:</strong> ${ msg } <br><small>${ url } :${ line } :${ col } </small><br><br>Stack: ${ error ? error . stack : 'N/A' } ` ;
93+ const target = e . target ;
94+ // Check if it's a resource loading error
95+ if ( target && ( target . tagName === 'SCRIPT' || target . tagName === 'LINK' || target . tagName === 'IMG' ) ) {
96+ errorDiv . innerHTML += `<br><strong>Resource Error:</strong> Failed to load ${ target . src || target . href } ` ;
97+ } else {
98+ errorDiv . innerHTML += `<br><strong>Runtime Error:</strong> ${ e . message } ` ;
99+ }
93100 }
94- // Also alert to be sure
95- // alert('Error: ' + msg);
96- return false ;
97- } ;
101+ } , true ) ; // true = capture phase
98102
99103 // Catch unhandled promise rejections
100- window . onunhandledrejection = function ( event ) {
104+ window . addEventListener ( 'unhandledrejection' , function ( event ) {
101105 const errorDiv = document . getElementById ( 'global-error' ) ;
102106 if ( errorDiv ) {
103107 errorDiv . style . display = 'block' ;
104- errorDiv . innerHTML += `<br><br>< strong>Unhandled Promise:</strong> ${ event . reason } ` ;
108+ errorDiv . innerHTML += `<br><strong>Unhandled Promise:</strong> ${ event . reason } ` ;
105109 }
106- } ;
110+ } ) ;
107111 </ script >
108112 < script type ="module " src ="src/main.jsx "> </ script >
109113</ body >
0 commit comments