次のような HTML 文字列があります。
var str = "<html><head><link href='abc.css'/><script src='js/a.js'></script><title>hello</title></head><body><div><img src='images/abcd.png'></div></body></html>";
ここで、この HTML を iframe で表示する必要があるため、iframe src を次のように設定します。
document.getElementById('frameID').setAttribute('src', "data:text/html, " + str);
ここで、問題は、上記の html が相対パスを使用していくつかのリソースを必要とすることであり、直接アクセスすることはできません。
ただし、HTML 文字列/ファイルに必要なすべてのリソースをキーと値のペアとしてインデックス付き DB に格納し、キーをパスとして、値をファイルのデータとして保持しています。
iframe にイベントを設定してこれを実行しようとonload
しましたが、ハンドラーで iframe にアクセスしようとしましたcontentWindow
が、これにはいくつかのセキュリティ上の問題があります (オリジンが同じではないため)。contentWindow を取得することで、img タグと script タグを操作できました。
iframe src
上記のように設定した後、これらのリソースにアクセスできる方法はありますか?
助けてください、私は長い間立ち往生しています。