Кто-нибудь знает о каких-либо обходных решениях для создания iframe about:blank
на странице в IE при изменении document.domain
?
IE, похоже, не разрешает доступ к пустым/динамическим iframes после того, как свойство document.domain
было изменено.
Например, представьте, что вы динамически создаете iframe и затем вставляете в него некоторый html:
// Somewhere else, some 3rd party code changes the domain
// from something.foo.com to foo.com
document.domain = 'jshell.net';
var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
// In IE, we can't access the iframe contentWindow! Access is denied.
iframe.contentWindow.document.body.style.backgroundColor = 'red';
Вот живой пример на jsfiddle: http://jsfiddle.net/XHkUT/
Вы заметите, что он отлично работает в FF/Webkit, но не в IE. Это особенно неприятно, потому что это влияет на iframe, созданные после того, как свойство document.domain
изменилось (как в примере выше).
Правило IE похоже на "если вы создаете динамический/пустой iframe после изменения document.domain
, вы не можете получить доступ к его DOM".
Установка iframe src
в about:blank
javascript:void(0)
или javascript:""
не удалась.