2010-07-16 7 views
5

Necesito una función que se inicia cuando se carga el DOM.Cómo reemplazar todos los <img src=""> vacíos en una página con JavaScript en dom cargado?

En mi página HTML son varios vacíos etiquetas de imagen, como y quiero añadir una imagen-Nombre en el src-propiedad cuando todo está cargado de conseguir algo así como

<img src="blank.jpg">. 

mejores deseos Chris

+0

¿Algún motivo para no usar JQuery? – AlG

+0

Sí, no queremos sobrecargar el proyecto con otros marcos. Ya usamos en gran rango prototypeJS. – ChrisBenyamin

Respuesta

6
function replaceSrc() 
{ 

    var images = document.getElementsByTagName('img'); 

    for(var i = 0; i < images.length; i++) 
    { 
     var img = images[i]; 

     if(img.src.length == 0) 
     { 
      img.src = 'blank.jpg'; 
     } 
    } 
} 


window.onload = replaceSrc; 

o si desea agregar más de un controlador para el evento:

document.addEventListener('load', replaceSrc, false) //W3C 
document.attachEvent('onload', replaceSrc); //IE 

con jQuery

$(document) 
    .ready(function() { $('img') 
          .filter(function(){ return this.src.length == 0 }) 
           .each(function() { this.src = 'blank.jpg'}) }); 

EDIT:

me di cuenta que es probable que desee establecer la propiedad src antes de la carga de imágenes, así que cambió el código para disparar en el evento de carga del documento, que pasa delante de las imágenes comienza a cargar

3

Use jQuery! Es fácil.

$('img').attr('src','new-image-name.jpg') 

Esto establecerá el atributo src de cada etiqueta img a 'nueva-imagen-name.jpg'.

2

Con jQuery, esto establecería el atributo src de todos los elementos img con un atributo src en blanco en "blank.jpg" en la carga de la página.

$.ready(function() { 
    $("img[src='']").attr("src", "blank.jpg"); 
}); 
8

La construcción <img src=""> no es válida. Nunca lo use

No es válido porque la URL vacía significa la URL de la página actual. Pero la página actual es un documento HTML, no una imagen. El navegador puede hacer otra consulta de la página actual e intentar usarla como imagen (ver this page).

+0

Sí. En el peor de los casos, esto disparará numerosas llamadas a la misma página (principal). (Límite diario de votos alcanzado, sería +1 en caso contrario) –

0

Puede usar este script.

# Script AddImage.txt 
var string pagefile, image, html 
# Read in the page file. 
cat $pagefile > $html 
# Replace all instances of "<img src="blank.jpg">" with the specified image. 
while ({ sen -r -c "^<img src=&\>^" $html } > 0) 
    sal -r -c "^<img src=&\>^" ("<img src=\""+$image+"\">") $html > null 
# Write page back. 
echo $html > { echo $pagefile } 

Script está en biterscripting. Guarde el script en el archivo "C: /Scripts/AddImage.txt", ejecútelo con este comando.

script "C:/Scripts/AddImage.txt" pagefile("/path/to/page.html") image("blank.jpg") 

Reemplazará la imagen anterior con "blank.jpg".

0

Con JQuery simplemente puede resolver su problema usando el siguiente código.

$(function(){ 
    $("img[src='']").attr("src", "blank.jpg"); 
}); 
Cuestiones relacionadas