Mercurial Hosting > lang
diff src/site.js @ 2:78708fa556a0
add login
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 08 Jul 2025 15:55:34 -0600 |
parents | 1c87f785eb42 |
children | b1adec083e44 |
line wrap: on
line diff
--- a/src/site.js Tue Jul 08 14:18:25 2025 -0600 +++ b/src/site.js Tue Jul 08 15:55:34 2025 -0600 @@ -29,6 +29,47 @@ request.send(postData); } +window.onerror = function(msg, url, line, col, error) { + if( !url ) + return; + let err = msg; + err += '\nurl = ' + url; + if( url != window.location ) + err += '\npage = ' + window.location; + err += '\nline = '+line; + if( col ) + err += '\ncolumn = ' + col; + if( error ) { + if( error.stack ) + err += '\nstack = ' + error.stack; + if( error.cause ) + err += '\ncause= ' + error.cause; + if( error.fileName ) + err += '\nfileName= ' + error.fileName; + } + if( window.err ) { + err += window.err; + window.err = null; + } + ajax( '/error_log.js', 'err='+encodeURIComponent(err) ); +}; + +function ajaxForm(url,form) { + let post = ''; + for( let i=0; i<form.length; i++ ) { + let input = form[i]; + let name = input.name; + if( name === '' ) + continue; + let type = input.type; + if( (type==='radio' || type==='checkbox') && !input.checked ) + continue; + post += name + '=' + encodeURIComponent(input.value) + '&'; + } + ajax(url,post,{form:form}); +} + + function showWaitingAiIcon() { document.querySelector('[waiting-ai-icon]').style.display = 'block'; }