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.

¿Fue útil?

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

  • 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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top