Как найти все картинки на странице

javascript

  • JavaScript

Как найти все картинки на странице?

Всем привет! Есть простой лендинг. Хочу сделать для него админку.
Вопрос: как найти все (не только в теге img, а все)?
В php пробовал использовать регулярное выражение и найти по списку форматов, но думаю так не очень правильно, ведь формат картинок очень много и я не очень разбираюсь в регулярках в js.


  • Вопрос задан

    более трёх лет назад

  • 425 просмотров



7

комментариев

  • Если вы ставите вопрос шире чем просто img, то надо уточнить, что именно вы ищите, и даже более того, что вы считаете картинкой: тэг img, background-image в css — могу понять, а что насчёт растра внутри canvas или svg? Тоже вроде как картинки.

  • Ankhena

    Ankhena

    @Ankhena Куратор тега JavaScript

    document.getElementsByTagName('img') найдет все теги img
    document.getElementsByTagName('svg') найдет svg
    elem.style.backgroundImage проверяйте на наличие фоновой картинки, перебирая форматы, а не просто пусто или не пусто, а то туда попадут градиенты.

    С canvas… ну если бы у вас были canvs’ы вы бы не задавали такой вопрос, опустим его.

  • Ankhena, не работает. Ошибка: Uncaught ReferenceError: elem is not defined

  • Ankhena

    Ankhena

    @Ankhena Куратор тега JavaScript

    rinaz22, жестоко оно с вами..

    elem это любой элемент.
    Вам нужно написать функцию, которая будет перебирать все элементы внутри заданного (всего документа или только контентной части или где вы еще хотите поискать фон). Тогда вместо elem будет this.

    Альтернатива — фриланс

  • rinaz22,

    var elemHasBGImg = [];
    document.getElementsByTagName( '*' ).forEach( function()  {
        if ( this.style.backgroundImage.test( 'url' ) )
            elemHasBGImg.push( this )
    } )

    Как-то так, не тестировал.

Пригласить эксперта


Ответы на вопрос 1

Stimulate

console.log(document.getElementsByTagName('img'));

  • Если я не ошиблась, он находит все, где написано name=’img’

  • yarkov


Похожие вопросы


  • Показать ещё
    Загружается…

28 мая 2023, в 23:02

5000 руб./за проект

28 мая 2023, в 22:56

9000 руб./за проект

28 мая 2023, в 22:23

1000 руб./за проект

Минуточку внимания

Вопрос:

Скажем, я загрузил URI селеном. Я понятия не имею, как эти элементы называются на этой странице (я не знаю идентификатор, имя… элементов). Я хочу загрузить все возможные изображения, которые могут существовать на этой веб-странице. Эта проблема решается посредством первого ответа на этот вопрос. Но как я могу расположить с селеном все изображения, которые существуют на этой веб-странице?

Я проверил ответы на подобные вопросы, как этот один, но ответы не являются полезными.

Лучший ответ:

Самый простой способ – найти по имени тега, так как все изображения будут иметь тег изображения, который вы можете просто получить каждый элемент на этой странице с помощью этого тега. В python я считаю, что он будет использовать (обратите внимание на find_element_by_tag_name, поскольку это вернет только один из элементов)

find_elements_by_tag_name

и вы захотите найти элементы с тегом img http://www.w3schools.com/tags/tag_img.asp

Ответ №1

Если я не ошибаюсь, вы можете сделать что-то вроде этого

driver.find_element_by_tag_name ( ‘IMG’)

Надеюсь, что это поможет.

I am using a simple script to find an image on a page and get its source.

function img_find() {
    var img_find2 = document.getElementsByTagName("img")[0].src;
    return img_find;
}

However when I go to write this function on my page it only finds the first image and then stops. What is the best way to have it print all of the image src’s on the current page?
Thanks!

BalusC's user avatar

BalusC

1.1m371 gold badges3602 silver badges3547 bronze badges

asked Apr 27, 2011 at 18:54

Chris's user avatar

5

You indeed told the code to do so. Don’t do that. Just tell it to loop over all images and push the src of each in an array and return the array with all srcs instead.

function img_find() {
    var imgs = document.getElementsByTagName("img");
    var imgSrcs = [];

    for (var i = 0; i < imgs.length; i++) {
        imgSrcs.push(imgs[i].src);
    }

    return imgSrcs;
}

answered Apr 27, 2011 at 19:01

BalusC's user avatar

BalusCBalusC

1.1m371 gold badges3602 silver badges3547 bronze badges

3

It may help you…

img=document.getElementsByTagName("img");
for(i=0; i<img.length; i++) {
    imgp = imgp + img[i].src + '<br/>'; 
}
document.write(imgp);

Lukas Neumann's user avatar

answered Jul 5, 2014 at 17:17

Ashish Kumar's user avatar

1

I searched the whole web for a solution to this, maybe this will help if someone else searches the same.

for(var i = 0; i< document.images.length; i++){
document.images[i].style.border = "1px solid #E0FDA6";
}

Meaning, search all images that have style tag (border in this example) and set all borders to E0FDA6 (useful to reset single highlighted images), but I guess it can be used for everything with style tag.

Rg, Anjanka

answered Jan 19, 2013 at 11:47

Anjanka's user avatar

To print on current page (replace content):

document.write(`<pre>${JSON.stringify(Array.prototype.map.call(document.getElementsByTagName("img"), img => img.src), null, 2)}</pre>`);

To save in array:

const imgs = Array.prototype.map.call(document.getElementsByTagName("img"), img => img.src);

To just console dir/log directly:

console.dir(Array.prototype.map.call(document.getElementsByTagName("img"), img => img.src));
console.log(Array.prototype.map.call(document.getElementsByTagName("img"), img => img.src));

answered Sep 15, 2020 at 19:26

1337ric's user avatar

1337ric1337ric

411 silver badge3 bronze badges

Make it simple:

console.log(document.body.getElementsByTagName('img'));

answered Dec 2, 2016 at 23:28

Sam's user avatar

SamSam

90010 silver badges18 bronze badges

1

мне надо получить ссылки всех изображений на сайте js/jQuery

<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="shortcut icon" href="image/favicon.ico" />
    <title>Document</title>
</head>
<body>
    <div class="container">
        <img src="/image/star/star.svg" alt="image"/>
        <img src="/image/star/star.jpg" alt="image"/>
        <img src="https://www.google.com/images/branding/googlelogo/2x/googlelogo_light_color_92x30dp.png" alt="image"/>
        
        <p> some text of container for test http://site.com </p>
        <p> some text of container for test http://site.com/inage/image.png</p>
    </div>

    <script>
        let images = getAllImage();
        console.log(images);

        // [
        //  "http://mysite/image/favicon.ico" ,
        //  "http://mysite/image/star/star.svg" ,
        //  "http://mysite/image/star/star.jpg" , 
        //  "https://www.google.com/images/branding/googlelogo/2x/googlelogo_light_color_92x30dp.png" ,
        //  "http://site.com/inage/image.png"
        // ]

    </script>
</body>
</html>

Можете подсказать как это реализовать ?

Старый

24.11.2011, 15:53

Новичок на форуме

Отправить личное сообщение для padonak

Посмотреть профиль

Найти все сообщения от padonak

 

Регистрация: 24.11.2011

Сообщений: 7

Вывести все картинки что есть на странице

Здравствуйте добрые люди. Мне предстоит задача вивести все изображения которые содержыт хтмл-страница. Так как с js я только начинаю дружить то идей у меня маловато)
подскажите пожалуйста как реализовать данную задачу.

Ответить с цитированием

Старый

24.11.2011, 15:57

Аватар для systemiv

Профессор

Отправить личное сообщение для systemiv

Посмотреть профиль

Найти все сообщения от systemiv

 

Регистрация: 19.08.2011

Сообщений: 186

var listImg = document.getElementsByTagName('img');
for(var i = 0; i < listImg.length; i++){
    doument.write('<img src="' + listImg[i].src + '" />');
}
</script>

p.s. возможны ошибки, писал без проверки



Последний раз редактировалось systemiv, 24.11.2011 в 16:05.

Ответить с цитированием

Старый

24.11.2011, 16:39

Новичок на форуме

Отправить личное сообщение для padonak

Посмотреть профиль

Найти все сообщения от padonak

 

Регистрация: 24.11.2011

Сообщений: 7

спасибо. буду пробовать.

Ответить с цитированием

Старый

24.11.2011, 18:25

Аватар для 9xakep

сегодня в 12:34|Комментир

Отправить личное сообщение для 9xakep

Посмотреть профиль

Найти все сообщения от 9xakep

 

Регистрация: 12.04.2011

Сообщений: 1,180

doument.write(‘<img src=»‘ + listImg[i].src + ‘» />’); //document
=)



Последний раз редактировалось 9xakep, 26.11.2011 в 14:50.

Ответить с цитированием

Старый

24.11.2011, 19:34

Новичок на форуме

Отправить личное сообщение для padonak

Посмотреть профиль

Найти все сообщения от padonak

 

Регистрация: 24.11.2011

Сообщений: 7

в данном случае интересуют только картинки которые выведены тегом img

Ответить с цитированием

Старый

24.11.2011, 20:29

Интересующийся

Отправить личное сообщение для irezvov

Посмотреть профиль

Найти все сообщения от irezvov

 

Регистрация: 24.11.2011

Сообщений: 24

тогда для этого есть document.images

Ответить с цитированием

Старый

24.11.2011, 21:09

Новичок на форуме

Отправить личное сообщение для padonak

Посмотреть профиль

Найти все сообщения от padonak

 

Регистрация: 24.11.2011

Сообщений: 7

вроде все работает
но теперь надо чтобы когда картинка выводиться у нее оставалист ее свойства, то есть title, id, style и т.д. но только те, которые у нее есть

Ответить с цитированием

Старый

24.11.2011, 21:53

Интересующийся

Отправить личное сообщение для irezvov

Посмотреть профиль

Найти все сообщения от irezvov

 

Регистрация: 24.11.2011

Сообщений: 24

используй cloneNode, Люк…

Ответить с цитированием

Старый

26.11.2011, 13:50

Новичок на форуме

Отправить личное сообщение для padonak

Посмотреть профиль

Найти все сообщения от padonak

 

Регистрация: 24.11.2011

Сообщений: 7

обьясните пожалуйста как использовать cloneNode

Ответить с цитированием

Понравилась статья? Поделить с друзьями:
  • Как найти максимальное значение в строке excel
  • Корреспонденция счетов как составить корреспонденцию счетов
  • Как найти общий язык девочке с девочкой
  • Как найти коэффициент трения поверхности формула
  • Как найти мой емаил