Является ли пустой iframe src допустимым?
Я хочу, чтобы iframe изначально имел src
как пустой, а затем после загрузки страницы; вызовите функцию JS, а затем установите src
значение фактической..
так и есть <iframe src="#" />
действительный или мне нужно использовать что-то еще, как javascript:;
, etc
9 ответов:
рабочий проект HTML 5,4.8.2, - говорит (выделено мной):
The
src
атрибут дает адрес страница, на которой вложенный просмотр контекст должен содержать. Атрибут, если присутствует, должен быть действующий непустой URL потенциально окруженный пробелами.По данным RFC 3986 допустимым URL-адреса должны начинаться с название схемы, и относительные ссылки не только состоять в фрагмент.
таким образом,
#
не является допустимым URL-адресом, и не должно использоваться в качестве значения .использовать about: blank вместо.
нет, это не действительным чтобы указать пустой iframe src.
вы должны использовать
<iframe src="about:blank" />
.
#
это мент быть ссылка на якорь в пределах текущей страницы (или, часто используется в качестве схемы маршрутизации при работе с AJAX-запросами). Использование его в качестве источника iframe было бы бессмысленным, поскольку iframe не ссылается на содержимое текущей страницы и не используется с запросами AJAX.
about:blank
это кросс-браузер стандартный для отображения пустого документа.обновление 8 июня 2012 года:
кажется,'гостиная' спецификаций больше не делает iframe недействительным, если отсутствует:
если при создании элемента атрибут srcdoc не задан, и атрибут src также не задан или задан, но его значение не может будет разрешено, контекст просмотра останется на первоначальный о программе: пустая страница.
если оба этих атрибута, однако, не установлены, контекст просмотра будет по умолчанию
about:blank
. Чтобы обеспечить надлежащую обратную совместимость, рекомендуется быть подробным и, на данный момент, предоставитьabout:blank
url.
похоже, что вы также можете полностью исключить src:
http://dev.w3.org/html5/spec/Overview.html#the-iframe-element
Если при создании элемента атрибут srcdoc равен не установлено, и атрибут src-либо также не установлено или набор, но его значение не может будет разрешено, контекст просмотра останется на начальном уровне о программе: пустая страница.
можно использовать
about:blank
наsrc
атрибут (как упоминалось Ариэль ранее), в противном случае он будет выдавать ошибку при обслуживании с защищенной страницы.защищенной странице
https
вызовет ошибку, возможно, незащищенных данных на защищенном веб-сайте.
вы можете попробовать добавить iframe через Javascript, поэтому вам не нужно будет иметь пустой в HTML:
(пример jQuery)
<script type="text/javascript"> $().ready(function() { $("<iframe />").attr("src", "http://www.bbc.co.uk/").appendTo("body"); }); </script>
добавление iframe с Javascript позволяет изящную деградацию-пользователи без Javascript не будет видеть пустой iframe.
в рамках стандарта схемы URI about: blank, вероятно, является лучшим вариантом, поскольку он имеет очень хорошую поддержку браузера.
about: blank возвращает пустой HTML-документ с типом носителя текст / html и кодировка символов UTF-8. Это широко используется для загрузки пустые страницы в контекстах просмотра, таких как iframes в HTML, которые затем могут быть изменены скрипты. можно посмотреть здесь
Для справки
скажем, следующий пример (Firefox 58, но может присутствовать во всех браузерах).
<link href="css.css" rel="stylesheet" type="text/css"/> <iframe src='about:blank'></iframe>
Iframe загружается перед css, поэтому рендеринг страницы виден до загрузки css. Т. е. на долю секунды страница выглядит без css.
вместо:
<link href="css.css" rel="stylesheet" type="text/css"/> <iframe src='blank.html'></iframe>
Он отлично работает, css загружается и iframe загружается окончательно.
если вы не хотите использовать
about:blank
вы можете использовать javascript какsrc
дляiframe
как в следующем примере:<iframe name="TV" id="tv" style="width:100%; background: #800000" src="javascript:document.write('<h3>Results Window</h3>')"></iframe>
приведенный выше пример инициализации
iframe
с бордовым фоном, который имеет простое сообщение<h3>Results Window</h3>
. Однако цели ваших ссылок должны равнятьсяiframe
name
атрибут т. е. в этом примереTV
.