iframe sin un atributo src
-
28-09-2019 - |
Pregunta
Me gustaría crear una <iframe>
en la página, pero luego añadir el src
más tarde. Si hago un iframe sin un atributo src
, a continuación, se carga la página actual en algunos navegadores. ¿Cuál es el valor correcto para el conjunto de src
de modo que sólo carga un iframe en blanco?
Las respuestas que he visto son:
-
about:blank
-
javascript:false
-
javascript:void(0)
-
javascript:"";
- URL para una página en blanco
¿Hay un ganador claro? Si no es así, ¿cuáles son las ventajas y desventajas?
Me gustaría no tiene mixtos advertencias de contenido para HTTPS URLs, ni ninguna-botón de retroceso, historia o rareza de recarga en todos los navegadores de Internet Explorer 6 en adelante.
Solución
enfoque estándar cuando se crea un "vacío" iframe (como una cuña iframe, por ejemplo), es establecer la src como javascript:false;
. Este es el método utilizado por la mayoría de las bibliotecas de JavaScript que crean iframe cuñas para usted (por ejemplo de superposición de YUI).
Otros consejos
No estoy seguro si todos los navegadores soportan "about: blank"., Por lo que acaba de ir con su propia página en blanco a continuación,
Otra idea: ¿Por qué no poner todo el marco flotante usando javascript en lugar de sólo la src
Re tu comentario aclarando que está planeando utilizar el iframe y como destino de envío de un formulario:
Yo usaría un documento vacío en el servidor que envía de vuelta un 204 no content
.
Se evita ??p>
- advertencias de "contenido mixto" en IE y HTTPS modo
- errores innecesarios debido a que un cliente no entiende el protocolo
javascript:
- y otros chanchullos exóticos.
También es HTML válido.
Entonces, ¿qué si se genera una solicitud adicional? Establecer las cabeceras de caché derecha, y habrá una única petición de cada cliente.
¿Qué pasa
about:blank
javascript:false
:
IE10 y FF (comprobado en v23 en Linux) mostrarán 'falso' como contenido.
javascript:void(0)
&& javascript:;
:
IE mostrará 'no puede mostrar la página web' error en el iframe. Además, cuando se ajusta el src de una URL válida para javascript:void(0)
, la página no obtendrá en blanco.
about:blank
:
Funciona en todos los navegadores, pero IE 9 envía una solicitud al servidor con el camino de "nulo". Siendo la mejor apuesta OMI
http://jsfiddle.net/eybDj/1
Pedido http://jsfiddle.net/sv_in/gRU3V/ para ver cómo iframe src cambios en updation dinámico con JS
javascript:false
funciona en los navegadores modernos.
Lo que he visto es que esto sólo "falla" cuando las arañas tontas tratan de javascript:false
carga como una página.
Solución:. Bloquear las arañas mudos
Como he escrito en este pregunta: es un iframe src vacío válida ? , parece aceptable para dejar sólo el atributo src=
por completo.
IMO: si no pone el src, su página no validar. Pero es todo. Si se pone un src = "", el servidor almacenará los muchos errores 404.
No hay nada realmente mal, como en "dañar". Pero entonces, es que en realidad no está mal utilizar un iframe en sí mismo?
° -
Sí, sé que estoy reviviendo un viejo hilo. Demándame. Estoy interesado en la respuesta.
No entiendo por qué tener el gatillo de ser una forma presentara impide crear dinámicamente el marco flotante. ¿Esto no lo hacen exactamente lo que quiere?
<html>
<head>
<script type="text/javascript">
function setIFrame(elemName, target, width, height) {
document.getElementById(elemName).innerHTML="<iframe width="+width+" height="+height+" src='"+target+"'></iframe>";
}
</script>
</head>
<body>
<div id="iframe" style="width:400px; height:200px"></div>
<form onSubmit="setIFrame('iframe', 'http://www.google.com', 400, 200); return false;">
<input type="submit" value="Set IFrame"/>
</form>
</body>
</html>