Přidán fork webového klinta Hydrogen
Minimální Matrix chatovací klient Matrix, zaměřený na výkon, offline funkčnost a širokou podporu prohlížeče. Na tom se stále pracuje a ještě není připraveno na hlavní vysílací čas. Hlášení o chybách jsou vítána, ale nezadávejte prosím žádné požadavky na funkce ani jiné chybějící věci, abyste byli na stejné úrovni jako Element Web.
This commit is contained in:
46
hydrogen/assets/download-sandbox.48a866e9.html
Normal file
46
hydrogen/assets/download-sandbox.48a866e9.html
Normal file
@ -0,0 +1,46 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<a id="link" href="#">Download</a>
|
||||
<script type="text/javascript">
|
||||
var link = document.getElementById("link");
|
||||
|
||||
function downloadBlob(blob, filename) {
|
||||
var url = URL.createObjectURL(blob);
|
||||
link.href = url;
|
||||
link.download = filename;
|
||||
link.click();
|
||||
URL.revokeObjectURL(url);
|
||||
}
|
||||
|
||||
function toBase64(buffer) {
|
||||
const bytes = new Uint8Array(buffer);
|
||||
let binaryStr = "";
|
||||
for (let i = 0; i < bytes.byteLength; i++) {
|
||||
binaryStr += String.fromCharCode(bytes[i]);
|
||||
}
|
||||
return btoa(binaryStr);
|
||||
}
|
||||
|
||||
function downloadBuffer(buffer, mimeType, filename) {
|
||||
var url = "data:" + mimeType + ";base64," + toBase64(buffer);
|
||||
link.href = url;
|
||||
link.download = filename;
|
||||
link.click();
|
||||
}
|
||||
|
||||
window.addEventListener("message", async function(event) {
|
||||
if (event.origin === window.location.origin) {
|
||||
if (event.data.type === "downloadBuffer") {
|
||||
await downloadBuffer(event.data.buffer, event.data.mimeType, event.data.filename);
|
||||
} else if (event.data.type === "downloadBlob") {
|
||||
await downloadBlob(event.data.blob, event.data.filename);
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user