Senin src = encodeURI
çalışman gerekse de , ben farklı bir yoldan giderdim:
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();
Bunun x-alan sınırlaması olmadığından ve tamamen iframe
tutamaç aracılığıyla yapıldığından , çerçevenin içeriğine daha sonra erişebilir ve bunları değiştirebilirsiniz. Emin olmanız gereken tek şey, içeriğin oluşturulmuş olmasıdır, bu (tarayıcı türüne bağlı olarak) .write komutu verildiği sırada / sonrasında başlayacaktır - ancakclose()
çağrıldığında zorunlu olarak yapılmayacaktır .
Geri arama yapmanın% 100 uyumlu bir yolu şu yaklaşım olabilir:
<html><body onload="parent.myCallbackFunc(this.window)"></body></html>
Ancak iframe'ler, onload olayına sahiptir. İç html'ye DOM (js) olarak erişmek için bir yaklaşım:
iframe.onload = function() {
var div=iframe.contentWindow.document.getElementById('mydiv');
};