「データ」URIを使用してプログラムでiframeを作成しています:
<iframe id="myFrame" src='data:text/html;charset=utf-8,<!DOCTYPE html><html><head></head><body><h1>Hello.</h1></body></html>'></iframe>
このフレームは正常に読み込まれますが、iframe をプログラムで操作すると、クロスドメイン セキュリティ チェックにヒットするようです。
var iframeDoc = document.getElementById('myFrame').contentWindow.document;
$(iframeDoc.body).find('h1').text('Changed');
Chrome および Safari でエラーをスローします。
安全でない JavaScript が URL data:text/html;charset=utf-8,... from frame with URL http://... でフレームにアクセスしようとしています...のプロトコルは '' です。プロトコルが一致する必要があります。
セキュリティエラーを示すフィドルは次のとおりです。http://jsfiddle.net/bhGcw/4/
Firefox と Opera はこの例外をスローせず、iframe の内容を変更できます。Webkit がデータ URI の空白のプロトコルを認識し、これをクロスドメイン違反と見なしているようです。
これを回避する方法はありますか?