次のように、新しく作成された iframe に HTML スニペットを読み込もうとしています。
<!DOCTYPE html>
<html>
<head><title>Test</title></head>
<body>
<script type="text/javascript">
var iframeId = "frame"
+ Math.floor((Math.random() + "") * 1000000000000).toString();
document.write('<iframe height="300"'
+ ' width="300"'
+ ' frameborder="0"'
+ ' scrolling="no"'
+ ' id="' + iframeId + '"'
+ ' name="' + iframeId + '"'
+ ' allowtransparency="true"></iframe>');
var iframe = document.getElementById(iframeId);
var iframeContent = '<!-- --\><script language=\"javascript\"\></script\>';
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(
'<!DOCTYPE html\><html\><head\><title\>Test</title\></head\><body\>'
+ iframeContent
+ '</body\></html\>');
iframe.contentWindow.document.close();
</script>
</body>
</html>
このドキュメントをブラウザで開くと、iframe が正しく読み込まれません。これを引き起こしている可能性のあるものについて何か考えはありますか?
iFrameContent を次のように設定した場合
var iframeContent = '<!-- --\>';
また
var iframeContent = '<script language=\"javascript\"\></script\>';
ページが正しく読み込まれているようです。
iframeContent は、本質的にサード パーティの HTML スニペット (freemarker js_string を使用してエスケープ) であり、HTML コメントを含む場合があります。