Кто-нибудь знает обходные пути для создания about:blank
iframe на странице в IE, когда document.domain
изменился?
IE, похоже, не разрешает доступ к пустым/динамическим фреймам после изменения свойства 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's 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:""
не удалась.