Tengo una aplicación de Android que genera algo de HTML que se representa localmente, en una vista de Webkit.Ocultar imágenes que no se cargaron
Los detalles de la generación de HTML no son realmente tan importante excepción de:
- la mayor parte se trata de un lugar, y no puedo cambiarlo
- la plantilla en torno a que HTML (incluyendo las cabeceras , pies de página, HEAD, etc.), CSS y Javascript están bajo mi control.
- la mayoría de las imágenes están bajo mi control, y se representan por separado del HTML intocable. Estas imágenes provienen del disco local y no requieren la red. Se puede suponer que estas imágenes están siempre disponibles.
- el HTML intocable contiene imágenes que, idealmente, se mostrarían. Si la red no está disponible, estas imágenes no se cargarán.
- es probable que el archivo HTML completo se almacene en el disco, mucho antes de que se represente. es decir, no podemos representar HTML diferente en función de la disponibilidad de la red.
Es probable que la aplicación esté fuera de línea por lo menos algunas veces, por lo que deseo manejar el caso donde las imágenes no se pueden cargar.
Las imágenes en cuestión son predominantemente imágenes de seguimiento 1x1, pero pueden incluir imágenes que deberían estar visibles si están disponibles.
Sin invocar JQuery, o una biblioteca externa, ¿qué recomendaría a mi plan de ataque?
que tienen ideas sobre cómo hacer esto, pero se dan cuenta de que son muchas trampas de las que preocuparse:
- con un selector CSS, seleccione todas las imágenes que no se han cargado (¿hay un selector de tales ?) y usa
display:none;
. - con Javascript, establezca el atributo
alt
en cada imagen en la cadena vacía. Esto tendría que hacerse endocument.onLoad
? - compruebe la disponibilidad de la red y, a continuación, utilice CSS para ocultar todas las imágenes con @ href ~ =^http. No estoy seguro de cómo/cuándo aplicar este estilo.
Si me ayuda, para este problema, parece que tengo los siguientes sub-problemas. No está clara la estrategia óptima para ninguno de ellos:
- cómo determinar la carga de las imágenes o el estado de la red.
- cómo ocultar/enmascarar el error al cargar imágenes, de modo que el usuario no puede detectar que falta la imagen.
- cuándo realizar estas tareas (por ejemplo, cuando el documento/ventana se ha terminado de cargar?)
- cómo aplicarlos.
Cualquier pensamiento, código, sugerencia sería recibido con gratitud.
Esto es exactamente lo que estaba buscando. Gracias. – jamesh
Asegúrese de activar JavaScript para WebView: myWebView.getSettings(). SetJavaScriptEnabled (true); – Rodja