如何在iframe中使用";显示IndexedDB blob时绑定CSS/JS;src";属性和url?

如何在iframe中使用";显示IndexedDB blob时绑定CSS/JS;src";属性和url?,iframe,blob,indexeddb,Iframe,Blob,Indexeddb,我目前正在设置一个网页,该网页使用IndexedDB在该网页的iframe中显示html文档。此文档已作为blob在数据库中。另外,我想让这个网页在线和离线工作。我曾经帮助我从这一切开始 现在,我通过创建一个指向blob的url并将其放入iframe的src属性,一次显示一个文档。html文档显示得很好,但由于css和javascript文件在html源代码中通过“localhost:8080/my_css.css”之类的URL链接,因此我目前使用的是存储在服务器上的css/JS和图像,一旦我离

我目前正在设置一个网页,该网页使用IndexedDB在该网页的iframe中显示html文档。此文档已作为blob在数据库中。另外,我想让这个网页在线和离线工作。我曾经帮助我从这一切开始

现在,我通过创建一个指向blob的url并将其放入iframe的src属性,一次显示一个文档。html文档显示得很好,但由于css和javascript文件在html源代码中通过“localhost:8080/my_css.css”之类的URL链接,因此我目前使用的是存储在服务器上的css/JS和图像,一旦我离线,这些文件将毫无帮助

我的问题是:有没有一种方法(如果可能的话非常简单)可以将存储在数据库中的CSS/JS/图像绑定到html文档,而无需修改这些文档的html代码以在iframe中完美地显示它们?我想我可以使用applicationcacheapi在本地存储我需要的文件,但是因为可能有很多CSS和JS文件,我宁愿使用indexeddbapi

非常感谢你的回答

我的HTML是什么样子的,如果有帮助的话:

<ul id="blob-list"> /*List of blobs is generated here */ </ul>
<iframe id="myframe" name="myframe"> /*My html documents are displayed here*/ </iframe>

<script type="text/javascript">
const DB_NAME = 'testdatabase';
  const DB_VERSION = 1; // Use a long long for this value (don't use a float)
  const DB_STORE_NAME = 'publications';

  var db;

 /**
  * @returns Permet d'ouvrir la DB afin de pouvoir l'utiliser
  */
  function openDb() {
    /* Open Database, create a store if not any and display its content. Code based on MDN example */
  }

       /* setInViewer is called every time a blob is clicked in #blob-list */
   function setInViewer(key) {
        var store = getObjectStore(DB_STORE_NAME, 'readonly');
        getBlob(key, store, function(blob) {
          var iframe = newViewerFrame();

          // Set a direct link to the blob to provide a mean to directly load it.
          var blobURL = window.URL.createObjectURL(blob);
          var myframe = document.getElementById("myframe");
          myframe.setAttribute("src", blobURL);
          window.URL.revokeObjectURL(blobURL);
        });
      }
   openDB();

</script>
    /*此处生成blob列表*/
/*我的html文档显示在此处*/ const DB_NAME='testdatabase'; const DB_VERSION=1;//对此值使用long long(不要使用浮点) const DB_STORE_NAME='出版物'; var-db; /** *@returns Permet d'ouvrir la DB afin de pouvoir l'user */ 函数openDb(){ /*打开数据库,创建一个存储(如果没有)并显示其内容*/ } /*每次单击#blob列表中的blob时,都会调用setInViewer*/ 函数setInViewer(键){ var store=getObjectStore(DB_store_NAME,'readonly'); getBlob(键、存储、函数(blob){ var iframe=newViewerFrame(); //设置到blob的直接链接,以提供直接加载它的方法。 var blobURL=window.URL.createObjectURL(blob); var myframe=document.getElementById(“myframe”); setAttribute(“src”,blobURL); window.URL.revokeObjectURL(blobURL); }); } openDB();
我会选择应用程序缓存来实现它。它将更易于管理和更新