play.html: try/catch în loader + .nojekyll

- inflateFromBase64url: prinde JSON corupt cu mesaj clar
- appendChild: prinde SyntaxError de browser cu mesaj util
- null-check pe #run element (race condition paranoia)
- .nojekyll: previne Jekyll să proceseze fișierele

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-06-14 17:02:48 +00:00
parent 07664406ac
commit 510581345a
2 changed files with 12 additions and 2 deletions

0
.nojekyll Normal file
View File

View File

@@ -355,8 +355,18 @@ var TPL = {"classic":"\u003c!doctype html>\n\u003chtml lang=\"ro\">\n\u003che
(async function(){
var h=location.hash.slice(1);
if(!h){document.getElementById('intro-title').textContent='Niciun joc în acest link.';return;}
window.MASTER=JSON.parse(await inflateFromBase64url(h));
var s=document.createElement('script');s.textContent=document.getElementById('run').textContent;document.body.appendChild(s);
try {
window.MASTER=JSON.parse(await inflateFromBase64url(h));
} catch(e) {
document.getElementById('intro-title').textContent='Link invalid sau corupt. Regenerează QR-ul din builder.';
return;
}
var runEl=document.getElementById('run');
if(!runEl){document.getElementById('intro-title').textContent='Eroare internă: motor lipsă.';return;}
var s=document.createElement('script');
s.textContent=runEl.textContent;
try { document.body.appendChild(s); }
catch(e) { document.getElementById('intro-title').textContent='Eroare browser: '+e.message; }
})();
</script>
<script type="text/plain" id="run">