Mercurial Hosting > disearch
view src/site.js @ 11:62dd23f0b549
start add server
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 29 Oct 2023 22:39:31 -0600 |
parents | 88f425d261b3 |
children | 3e2cb946d511 |
line wrap: on
line source
'use strict'; function ajax(url,postData,context) { let request = new XMLHttpRequest(); let method = postData ? 'POST' : 'GET'; request.open( method, url ); if( postData ) request.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' ); request.onload = function() { if( request.status !== 200 ) { console.log( 'ajax failed: ' + request.status ); if( request.responseText ) document.write('<pre>'+request.responseText+'</pre>'); return; } try { eval( request.responseText ); } catch(e) { console.log( request.responseText ); window.err = '\najax-url = ' + url; throw e; } }; 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 && error.stack) err += '\nstack = ' + error.stack; if( window.err ) { err += window.err; window.err = null; } ajax( '/error_log.js', 'err='+encodeURIComponent(err) ); }; let currentPulldown = null; let newPulldown = null; function clickMenu(clicked,display) { //console.log("clickMenu"); let pulldown = clicked.parentNode.querySelector('[pulldown_menu]'); if( pulldown !== currentPulldown ) { pulldown.style.display = display || "flex"; newPulldown = pulldown; window.onclick = function() { if( currentPulldown ) { currentPulldown.style.display = "none"; if( !newPulldown ) window.onclick = null; } currentPulldown = newPulldown; newPulldown = null; }; pulldown.scrollIntoViewIfNeeded(false); } } function logout() { document.cookie = 'user=; Max-Age=0; path=/;'; location = '/'; }