Получение html-содержимого iframe с помощью jQuery

В настоящее время я пытаюсь немного настроить OpenCms (CMS с открытым исходным кодом на основе java), в котором используется встроенный FCKEditor, к которому я пытаюсь получить доступ с помощью js / jQuery .

Я пытаюсь получить html-содержимое iframe, но всегда возвращаю null. Вот как я пытаюсь получить html-контент из iframe:

var editFrame = document.getElementById('ta_OpenCmsHtml.LargeNews_1_.Teaser_1_.0___Frame');
alert( $(editFrame).attr('id') );         // returns the correct id
alert( $(editFrame).contents().html() );  // returns null (!!)

Глядя на снимок экрана, я хочу получить доступ к html-разделу «LargeNews1 / Teaser», который в настоящее время содержит значения «Newsline en ...» . Ниже вы также можете увидеть структуру html в Firebug.

Однако $ (editFrame) .contents (). Html () возвращает значение null, и я не могу понять почему, тогда как $ (editFrame) .attr ('id') возвращает правильный идентификатор.

Контент iframe / FCKEditor находится на том же сайте / домене, межсайтовых проблем нет.

enter image description here

HTML-код iframe находится по адресу http://pastebin.com/hPuM7VUz

Обновлено:

вот решение, которое работает:

var editArea = document.getElementById('ta_OpenCmsHtml.LargeNews_1_.Teaser_1_.0___Frame').contentWindow.document.getElementById('xEditingArea');                        
$(editArea).find('iframe:first').contents().find('html:first').find('body:first').html('some new
value');

26
задан Mathias Conradt 11 January 2012 в 09:35
поделиться

1 ответ

Похож на jQuery, не предоставляет метод для выборки всего HTML iFrame, однако так как он обеспечивает доступ к собственному элементу DOM, гибридный подход возможен:

$("iframe")[0].contentWindow.document.documentElement.outerHTML;

Это возвратит HTML iFrame включая <THTML>, <HEAD> и <BODY>.

1
ответ дан 28 November 2019 в 06:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: