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.
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!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>
 |