Solución:
Si bien no es la solución “más limpia”, otra opción es usar la posición y el índice z en su CSS para “ocultar” una imagen vacía debajo de la iframe
. Esto le dará todas las ventajas de los metadatos del verdadero texto alternativo sin necesidad de entrar en secuencias de comandos complejas.
También es bueno si solo desea que se muestre como marcador de posición hasta que iframe
se ha terminado de cargar.
los
// Not tested
$('iframe').each(function() {
if ($(this).attr('href') == '') {
// Do something with $(this).attr('longdesc')
}
});
Dado que mi primer intento entendió mal su pregunta, intentemos esto en su lugar:
<script>
$(function () {
$("iframe").not(":has([src])").each(function () {
var ifrm = this;
ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument;
ifrm.document.open();
ifrm.document.write($(this).attr("alt"));
ifrm.document.close();
});
});
</script>
Esto leerá el valor de la etiqueta “alt” para cualquier iframe sin atributo src o un atributo src con un valor en blanco, y escribirá el texto alternativo en el cuerpo de ese iframe.
Ayudar a escribir elementos en un iframe secundario usando Javascript o jQuery