Подтвердить что ты не робот

Iframe без src, но все еще имеет контент?

При отладке кода jquery на своем сайте (через панель инструментов Chrome chrome)

Я заметил, что их примеры приведены под Iframe:

Здесь, например, есть образец, который находится под IFrame, но после исследования я вижу, что Iframe не имеет SRC

На рисунке показано все

enter image description here

Вопрос:

Можно ли установить контент в iframe без установки его SRC?

p.s. это меню также показывает мне пустой контент

enter image description here

4b9b3361

Ответ 1

Да, можно загрузить пустой <iframe> (без src), а затем применить к нему содержимое с помощью скрипта.

См. Http://api.jquery.com/jquery-wp-content/themes/jquery/js/main.js (строка 54 и ниже).

Или просто попробуйте:

<iframe></iframe>

document.querySelector('iframe')
        .contentDocument.write("<h1>Injected from parent frame</h1>")

Ответ 3

Похоже, это наиболее совместимое решение в браузерах, а также оно распознается W3C

<iframe src="about:blank"></iframe>

Ответ 4

Конечно. Вы можете получить ссылку на объект iframe document с помощью

var doc = iframe.contentDocument;

а затем вы можете создавать и добавлять такие элементы, как в текущем документе.

Если iframe не имеет атрибута src, он все равно будет содержать пустой документ. Я полагаю, что хотя бы более старые версии IE требуют установки атрибута src, в противном случае iframe не будет иметь документа.

Смотрите также: contentDocument для iframe.

Ответ 5

Попробуйте дать:

src ="javascript:false;"

Ответ 6

Смешивая лучшие ответы в javascript и jQuery, я придумаю это решение для каждого iframe на странице:

<div class="iframewrapper ws-s-top mb-50" data-content="<!DOCTYPE html><html><head></head><body><p>Hello world</p></body></html>">
    <iframe frameborder="0" src=""></iframe>
</div>

$(".iframewrapper").each(function(){
    var html = $(this).attr("data-content");
    var iframe = $(this).find('iframe');
    var context = iframe[0].contentDocument.write(html);
    iframe[0].contentWindow.document.close(); //without this line, page loading animations won't go away!
});