diff options
Diffstat (limited to 'srs-anywhere-network.js')
| -rw-r--r-- | srs-anywhere-network.js | 53 |
1 files changed, 29 insertions, 24 deletions
diff --git a/srs-anywhere-network.js b/srs-anywhere-network.js index 8d972cc..40291a8 100644 --- a/srs-anywhere-network.js +++ b/srs-anywhere-network.js @@ -71,33 +71,38 @@ window.addEventListener("load", () => { const downloadJSONOld = downloadJSON; function downloadJSON(obj) { - const password = document.getElementById('network-password').value; - const xhr = new XMLHttpRequest(); - xhr.open('POST', '/cgi-bin/deck.py', true); - xhr.setRequestHeader('PASSWORD', password); - xhr.onreadystatechange = function () { - if (xhr.readyState === XMLHttpRequest.DONE) { - if (xhr.status < 200 || xhr.status >= 300) { - reportException(xhr.statusText); + try { + const password = document.getElementById('network-password').value; + const xhr = new XMLHttpRequest(); + xhr.open('POST', '/cgi-bin/deck.py', true); + xhr.setRequestHeader('PASSWORD', password); + xhr.onreadystatechange = function () { + if (xhr.readyState === XMLHttpRequest.DONE) { + if (xhr.status < 200 || xhr.status >= 300) { + reportException(xhr.statusText); - const jsonString = JSON.stringify(obj, null, 2); - const blob = new Blob([jsonString], { type: 'application/json' }); - const url = URL.createObjectURL(blob); + const jsonString = JSON.stringify(obj, null, 2); + const blob = new Blob([jsonString], { type: 'application/json' }); + const url = URL.createObjectURL(blob); - // Create a "ghost" anchor to trigger the download - const a = document.createElement('a'); - a.href = url; - a.download = 'data.json'; + // Create a "ghost" anchor to trigger the download + const a = document.createElement('a'); + a.href = url; + a.download = 'data.json'; - // Append to body, click it, and remove it immediately - document.body.appendChild(a); - a.click(); - document.body.removeChild(a); + // Append to body, click it, and remove it immediately + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); - // Clean up the URL object to free up memory - URL.revokeObjectURL(url); + // Clean up the URL object to free up memory + URL.revokeObjectURL(url); + } } - } - }; - xhr.send(JSON.stringify(window.allCards, null, 2)); + }; + xhr.send(JSON.stringify(window.allCards, null, 2)); + } catch (e) { + reportException(e); + downloadJSONOld(obj); + } } |