Хоча ти 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 - але не обов'язково робиться, коли close()
викликається.
На 100% сумісний спосіб здійснення зворотного дзвінка може бути такий підхід:
<html><body onload="parent.myCallbackFunc(this.window)"></body></html>
Однак у iframes є подія завантаження. Ось підхід до доступу до внутрішнього html як DOM (js):
iframe.onload = function() {
var div=iframe.contentWindow.document.getElementById('mydiv');
};