play.html: ASCII-ify codul motorului înainte de injecție (fix Brave)
Brave pica pe caractere non-ASCII (ă, ț, —, →) din comentariile JS la parsare. Fix: replace /[^\x00-\x7F]/ → \uXXXX înainte de appendChild — cod ASCII pur, imun la orice encoding mismatch. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
30
play.html
30
play.html
@@ -363,28 +363,14 @@ var TPL = {"classic":"\u003c!doctype html>\n\u003chtml lang=\"ro\">\n\u003che
|
|||||||
}
|
}
|
||||||
var runEl=document.getElementById('run');
|
var runEl=document.getElementById('run');
|
||||||
if(!runEl){document.getElementById('intro-title').textContent='Eroare internă: motor lipsă.';return;}
|
if(!runEl){document.getElementById('intro-title').textContent='Eroare internă: motor lipsă.';return;}
|
||||||
var runCode=runEl.textContent;
|
/* ASCII-ify: Brave respinge non-ASCII in comentarii JS (encoding mismatch) */
|
||||||
var injected=false;
|
var runCode=runEl.textContent.replace(/[^\x00-\x7F]/g,function(c){
|
||||||
/* Blob URL: compatibil Brave/Firefox strict fără CSP unsafe-inline */
|
return '\\u'+('000'+c.charCodeAt(0).toString(16)).slice(-4);
|
||||||
try {
|
});
|
||||||
var blob=new Blob([runCode],{type:'text/javascript'});
|
var s=document.createElement('script');
|
||||||
var burl=URL.createObjectURL(blob);
|
s.textContent=runCode;
|
||||||
var s=document.createElement('script');
|
try { document.body.appendChild(s); }
|
||||||
s.src=burl;
|
catch(e){ document.getElementById('intro-title').textContent='Eroare browser: '+e.message; }
|
||||||
await new Promise(function(res,rej){s.onload=res;s.onerror=rej;document.body.appendChild(s);});
|
|
||||||
URL.revokeObjectURL(burl);
|
|
||||||
injected=true;
|
|
||||||
} catch(e1) {
|
|
||||||
/* fallback: injectare directă (Chrome/Edge clasic) */
|
|
||||||
try {
|
|
||||||
var s2=document.createElement('script');
|
|
||||||
s2.textContent=runCode;
|
|
||||||
document.body.appendChild(s2);
|
|
||||||
injected=true;
|
|
||||||
} catch(e2) {
|
|
||||||
document.getElementById('intro-title').textContent='Eroare browser: '+e2.message;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
<script type="text/plain" id="run">
|
<script type="text/plain" id="run">
|
||||||
|
|||||||
Reference in New Issue
Block a user