Как заменить все пустые <img src=""> на странице с JavaScript на дом загружен? - PullRequest
5 голосов
/ 16 июля 2010

Мне нужна функция, которая запускается при загрузке DOM.

На моей HTML-странице есть несколько пустых тегов изображения, например, и я хочу добавить Image-Name в свойство src, когда всезагружается, чтобы получить что-то вроде

<img src="blank.jpg">.

С наилучшими пожеланиями, Крис

Ответы [ 6 ]

8 голосов
/ 17 июля 2010

Конструкция <img src=""> недействительна.Никогда не используйте его.

Это недопустимо, потому что пустой URL-адрес означает URL-адрес текущей страницы.Но текущая страница - это HTML-документ, а не изображение.Браузер может выполнить другой запрос текущей страницы и попытаться использовать его в качестве изображения (см. эта страница ).

6 голосов
/ 16 июля 2010
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;

ИЛИ, если вы хотите добавить более одного обработчика для события:

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

С помощью jQuery

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

EDIT:

Я понял, что вы, вероятно, хотите установить свойство src перед загрузкой изображений, поэтому я изменил код для запуска события загрузки документа, которое происходит до начала загрузки изображений.

3 голосов
/ 16 июля 2010

Используйте jQuery ! Это просто.

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

Это установит атрибут src каждого тега img в 'new-image-name.jpg'.

2 голосов
/ 16 июля 2010

При jQuery это установит атрибут src всех элементов img с пустым атрибутом src равным «blank.jpg» при загрузке страницы.

$.ready(function() {
  $("img[src='']").attr("src", "blank.jpg");
});
0 голосов
/ 01 августа 2017

С помощью JQuery вы можете просто решить вашу проблему, используя следующий код.

$(function(){
   $("img[src='']").attr("src", "blank.jpg");
});
0 голосов
/ 17 июля 2010

Вы можете использовать этот скрипт.

# 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 }

Скрипт в битрейскрипте. Сохраните скрипт в файле «C: /Scripts/AddImage.txt», запустите его с помощью этой команды.

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

Он заменит предыдущее изображение на «blank.jpg».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...