javascript - ejemplo - ¿Es válido un iframe src vacío?
iframe src javascript (9)
Como parte del estándar sobre el esquema de URI, aproximadamente: en blanco es probablemente la mejor opción, ya que tiene muy buena compatibilidad con el navegador.
about: blank Devuelve un documento HTML en blanco con el tipo de medio text / html y la codificación de caracteres UTF-8. Esto se usa ampliamente para cargar páginas en blanco en contextos de navegación, como iframes dentro de HTML, que luego pueden ser modificados por scripts. Puedes ver más aquí
Quiero que un iframe inicialmente tenga src
como blanco y luego una vez que se cargue la página; llamar a una función JS y luego establecer el valor src
en uno real ..
Entonces, <iframe src="#" />
válido O BIEN necesito usar algo más como javascript:;
, etc.
El borrador de trabajo de HTML 5, sección 4.8.2 , dice (énfasis mío):
El atributo
src
proporciona la dirección de una página que debe contener el contexto de navegación anidado. El atributo, si está presente, debe ser una URL válida no vacía potencialmente rodeada de espacios.
De acuerdo con RFC 3986 , las URL válidas deben comenzar con un nombre de esquema , y las referencias relativas no solo pueden consistir en un fragment .
Por lo tanto, #
no es una URL válida, y no debe usarse como el valor del atributo src
.
Use about:blank lugar.
Para el registro
Digamos el siguiente ejemplo (Firefox 58 pero puede estar presente en todos los navegadores).
<link href="css.css" rel="stylesheet" type="text/css"/>
<iframe src=''about:blank''></iframe>
Iframe se carga ANTES del css para que el render de la página sea visible antes de que se cargue el css. Es decir, por una fracción de segundo, la página se ve sin un CSS.
En lugar:
<link href="css.css" rel="stylesheet" type="text/css"/>
<iframe src=''blank.html''></iframe>
Funciona bien, el css se carga y el iframe se carga finalmente.
Parece que también puedes dejar de lado el src por completo:
http://dev.w3.org/html5/spec/Overview.html#the-iframe-element
Si, cuando se crea el elemento, el atributo srcdoc no está establecido y el atributo src tampoco está establecido o establecido, pero su valor no se puede resolver, el contexto de exploración permanecerá en la página inicial sobre: en blanco.
Podría intentar agregar el iframe a través de Javascript, por lo que no necesitaría tener uno en blanco en el HTML:
(ejemplo de jQuery)
<script type="text/javascript">
$().ready(function() {
$("<iframe />").attr("src", "http://www.bbc.co.uk/").appendTo("body");
});
</script>
Agregar el iframe con Javascript permite una degradación elegante: los usuarios sin Javascript no verán un iframe en blanco.
Puede usar about:blank
en el atributo src
(como se menciona anteriormente en ariel), de lo contrario arrojaría un error al publicar desde una página segura.
Una página segura https
arrojaría un error de datos posiblemente no seguros en el sitio web seguro.
Si no desea utilizar about:blank
, puede usar javascript como un src
para su iframe
como en el siguiente ejemplo:
<iframe name="TV" id="tv" style="width:100%; background: #800000" src="javascript:document.write(''<h3>Results Window</h3>'')"></iframe>
El ejemplo anterior inicializará un iframe
con fondo marrón que tiene un mensaje simple <h3>Results Window</h3>
. Sin embargo, los objetivos de sus enlaces deben ser iguales al atributo de name
iframe
es decir, en ese ejemplo de TV
.
just <iframe src=''about:blank''></iframe>
No, no es válido especificar un iframe src vacío.
Debe usar <iframe src="about:blank" />
.
#
es una referencia a un anclaje dentro de la página actual (o, a menudo se utiliza como un esquema de enrutamiento cuando se trabaja con solicitudes AJAX). Usarlo como fuente de un iframe no tendría sentido, ya que un iframe no hace referencia al contenido en la página actual y no se usa con las solicitudes AJAX.
about:blank
es un estándar entre navegadores para mostrar un documento en blanco.
Actualización 8 de junio de 2012:
Parece que la especificación ''viviente'' ya no vuelve inválido un iframe si falta el atributo src
:
Si, cuando se crea el elemento, el atributo srcdoc no está establecido y el atributo src tampoco está establecido o establecido, pero su valor no se puede resolver, el contexto de exploración permanecerá en la página inicial sobre: en blanco.
Sin embargo, si ninguno de estos atributos está configurado, el contexto de exploración se establecerá de manera predeterminada en about:blank
. Para proporcionar una compatibilidad hacia atrás adecuada, es recomendable ser prolijo y, por ahora, proporcionar la URL about:blank
.