加载存储在 IndexedDB 中的 HTML 页

Load HTML page stored in IndexedDB

我想创建一个 HTML 应用程序,它在 IndexedDB 中存储另一个网页(HTML+CSS+JS 在一个文件中)并可以在浏览器中打开它.

我知道我可以使用文件系统来做到这一点API:创建临时文件,将页面内容从数据库写入此文件并将浏览器位置更改为此文件。但我读到文件系统 API 仅受 Chrome 支持,所以我想知道是否有另一种方法,受标准支持?

如果您的文档是一个字符串,那么您可以使用数据 URL 方案将其加载到 window:

window.open('data:text/html;charset=utf-8,' + 
    encodeURIComponent( // Escape for URL formatting
        '<!DOCTYPE html>'+
        '<html lang="en">'+
        '<head><title>Embedded Window</title></head>'+
        '<body><h1>42</h1></body>'+
        '</html>'
    )
);