Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Изменение содержимого IFrame src

Автор вопроса: CyassinОтветов: 2

Я не верю, что это можно сделать, но возможно ли изменить содержимое iframe, отображаемого через src.

Сторонний скомпилированный элемент управления ASP.Net (версия Telerik RadEditor .Net 2), который я использую, имеет iframe в части отображаемого кода и не содержит тип документа, что вызывает проблемы в IE8 с некоторыми элементами.

Так как он скомпилирован, я не могу его добавить в исходники. Мне было интересно, можно ли добавить его другим способом?

Я пробовал несколько вещей в jquery, таких как:

$(element).html().prepend("doc type here");

$(element).html("doctype here" + $(element).html());

и всякие другие виды изворотливой работы.

  • почему вы не используете пользовательский фильтр содержимого. У вас есть возможность получить/установить значение radeditor. Milind Anantwar 28.05.2014
  • Я попытался посмотреть на фильтр пользовательского содержимого. Но я не понял, как в него внедрить docType. Не похоже, что он выполняет задачу, в которой я нуждаюсь. Ты знаешь как? Cyassin 28.05.2014
  • я отправил ответ. проверьте его. Milind Anantwar 28.05.2014

javascripthtmliframejquery

Ответы

Ответ 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();

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы