Tengo un iframe que carga un sitio web de terceros que es extremadamente lento de cargar.
¿Hay alguna manera de que pueda mostrar un mensaje de carga mientras se carga el iframe y el usuario no ve un gran espacio en blanco?
PD. Tenga en cuenta que el iframe es para un sitio web de terceros, por lo que no puedo modificar / inyectar nada en su página.
javascript
jquery
iframe
Jacob
fuente
fuente
Respuestas:
He hecho el siguiente enfoque CSS:
fuente
Creo que este código va a ayudar:
JS:
HTML:
CSS:
fuente
#loadingMessage
cuando hayload
fuego, pero ¿por qué también lo escondesready
? ¿No es demasiado pronto?addEventListener
y usarquerySelector
lastyle
propiedad s :-). Además de eso, el autor de la pregunta ha etiquetado comojquery
. ¿No puedes entender por qué fue tu mensaje? :-)Si es solo un marcador de posición lo que está tratando de lograr: un enfoque loco es inyectar texto como un fondo svg. Permite cierta flexibilidad y, por lo que he leído, el soporte del navegador debería ser bastante decente (aunque no lo he probado):
html:
css:
¿Qué puedes cambiar?
Dentro del valor de fondo:
tamaño de fuente: busque font-size = "" y cambie el valor a lo que desee
color de fuente: busque fill = "" . No olvide reemplazar el # con% 23 si está usando la notación de color hexadecimal. % 23 representa un # en la codificación de URL que es necesario para que la cadena svg se pueda analizar en FireFox.
familia de fuentes: busque font-family = "" recuerde evitar las comillas simples si tiene una fuente que consta de varias palabras (como con \ 'Lucida Grande \')
texto: busque el valor de elemento del elemento de texto donde ve la cadena PLACEHOLDER . Puede reemplazar la cadena PLACEHOLDER con cualquier cosa que sea compatible con la URL (los caracteres especiales deben convertirse a notación de porcentaje)
Ejemplo de violín
Pros:
Contras:
Solo recomendaría esto solo si es absolutamente necesario mostrar texto como un marcador de posición en un iframe que requiere un poco de flexibilidad (varios idiomas, ...). Tómate un momento y reflexiona: ¿es todo esto realmente necesario? Si pudiera elegir, optaría por el método de @ Christina
fuente
fuente
Aquí hay una solución rápida para la mayoría de los casos:
CSS:
Puede usar un GIF de carga animado si lo desea,
HTML:
Con el evento onload, puede eliminar la imagen de carga después de que la página de origen se cargue dentro de su iframe.
Si no está utilizando jQuery, simplemente coloque una identificación en el div y reemplace esta parte del código:
por algo como esto:
¡Todo lo mejor!
fuente
Sí, puede usar un div transparente colocado sobre el área del iframe, con un gif de cargador como único fondo.
Luego, puede adjuntar un
onload
evento al iframe:fuente
He seguido el siguiente enfoque
Primero, agregue div hermano
y luego cuando el iframe completó la carga
fuente
fuente
Puede usar lo siguiente
fuente