Я не верю, что это можно сделать, но возможно ли изменить содержимое iframe, отображаемого через src.
Сторонний скомпилированный элемент управления ASP.Net (версия Telerik RadEditor .Net 2), который я использую, имеет iframe в части отображаемого кода и не содержит тип документа, что вызывает проблемы в IE8 с некоторыми элементами.
Так как он скомпилирован, я не могу его добавить в исходники. Мне было интересно, можно ли добавить его другим способом?
Я пробовал несколько вещей в jquery, таких как:
$(element).html().prepend("doc type here");
$(element).html("doctype here" + $(element).html());
и всякие другие виды изворотливой работы.
Ответ 1 · рейтинг 1 · soloidx
Я сделал подобное с помощью iframes, используя jQuery: $('iframe').contents().find("#internaldiv"), это работает, но только если iframe src и основной веб-сайт являются частью одного домена, в других случаях вы должны иметь дело с одной и той же политикой домена (http://en.wikipedia.org/wiki/Same-origin_policy) и реализовать междоменную политику на вашем сервере и на другом сервере домена.
Ответ 2 · рейтинг 1 · Arseni Mourzenko
Под src вы имеете в виду содержание, верно? (src - это атрибут iframe, который указывает URI самого iframe)
Вы можете изменить тип документа, изменив содержимое iframe. Один из возможных способов - воссоздать iframe и повторно вставить содержимое, добавив перед ним тип документа. К сожалению, невозможно добавить тип документа к существующему iframe с помощью DOM.
Пример:
var iframe = document.createElement("iframe");
var idocument = iframe.contentDocument;
idocument.open();
idocument.write("<!DOCTYPE html...") // Doctype goes here
idocument.write("<html>...</html>") // Content goes here
idocument.close();