あなたsrc = encodeURI
はうまくいくはずですが、私は別の方法で行ったでしょう:
var iframe = document.createElement('iframe');
var html = '<body>Foo</body>';
document.body.appendChild(iframe);
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(html);
iframe.contentWindow.document.close();
これにはxドメイン制限がなく、iframe
ハンドルを介して完全に行われるため、後でフレームのコンテンツにアクセスして操作できます。あなたは確かのようにするために必要なすべての内容は(ブラウザの種類によって異なります)であろう、レンダリングされていること、である.WRITEコマンドが発行された後に/中に開始- しかし、ときnescessarily行われていないclose()
と呼ばれています。
コールバックを行う100%の互換性のある方法は、このアプローチである可能性があります。
<html><body onload="parent.myCallbackFunc(this.window)"></body></html>
ただし、iframesにはonloadイベントがあります。以下は、DOM(js)として内部のhtmlにアクセスする方法です。
iframe.onload = function() {
var div=iframe.contentWindow.document.getElementById('mydiv');
};