-
JavaScript
Как найти все картинки на странице?
Всем привет! Есть простой лендинг. Хочу сделать для него админку.
Вопрос: как найти все (не только в теге img, а все)?
В php пробовал использовать регулярное выражение и найти по списку форматов, но думаю так не очень правильно, ведь формат картинок очень много и я не очень разбираюсь в регулярках в js.
-
Вопрос заданболее трёх лет назад
-
425 просмотров
7
комментариев
-
Если вы ставите вопрос шире чем просто img, то надо уточнить, что именно вы ищите, и даже более того, что вы считаете картинкой: тэг img, background-image в css — могу понять, а что насчёт растра внутри canvas или svg? Тоже вроде как картинки.
-
Ankhena
@Ankhena Куратор тега JavaScript
document.getElementsByTagName('img')
найдет все теги imgdocument.getElementsByTagName('svg')
найдет svgelem.style.backgroundImage
проверяйте на наличие фоновой картинки, перебирая форматы, а не просто пусто или не пусто, а то туда попадут градиенты.С canvas… ну если бы у вас были canvs’ы вы бы не задавали такой вопрос, опустим его.
-
Ankhena, не работает. Ошибка: Uncaught ReferenceError: elem is not defined
-
Ankhena
@Ankhena Куратор тега JavaScript
rinaz22, жестоко оно с вами..
elem это любой элемент.
Вам нужно написать функцию, которая будет перебирать все элементы внутри заданного (всего документа или только контентной части или где вы еще хотите поискать фон). Тогда вместо elem будет this.Альтернатива — фриланс
-
rinaz22,
var elemHasBGImg = []; document.getElementsByTagName( '*' ).forEach( function() { if ( this.style.backgroundImage.test( 'url' ) ) elemHasBGImg.push( this ) } )
Как-то так, не тестировал.
Пригласить эксперта
Ответы на вопрос 1
console.log(document.getElementsByTagName('img'));
-
Если я не ошиблась, он находит все, где написано name=’img’
-
Похожие вопросы
-
Показать ещё
Загружается…
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
1.1m371 gold badges3602 silver badges3547 bronze badges
asked Apr 27, 2011 at 18:54
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
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);
answered Jul 5, 2014 at 17:17
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
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
1337ric1337ric
411 silver badge3 bronze badges
Make it simple:
console.log(document.body.getElementsByTagName('img'));
answered Dec 2, 2016 at 23:28
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 |
|||
|
|||
Вывести все картинки что есть на странице Здравствуйте добрые люди. Мне предстоит задача вивести все изображения которые содержыт хтмл-страница. Так как с js я только начинаю дружить то идей у меня маловато) |
24.11.2011, 15:57 |
||||
|
||||
var listImg = document.getElementsByTagName('img'); for(var i = 0; i < listImg.length; i++){ doument.write('<img src="' + listImg[i].src + '" />'); } </script> p.s. возможны ошибки, писал без проверки
|
24.11.2011, 16:39 |
|||
|
|||
спасибо. буду пробовать. |
24.11.2011, 18:25 |
||||
|
||||
doument.write(‘<img src=»‘ + listImg[i].src + ‘» />’); //document
|
24.11.2011, 19:34 |
|||
|
|||
в данном случае интересуют только картинки которые выведены тегом img |
24.11.2011, 20:29 |
|||
|
|||
тогда для этого есть document.images |
24.11.2011, 21:09 |
|||
|
|||
вроде все работает |
24.11.2011, 21:53 |
|||
|
|||
используй cloneNode, Люк… |
26.11.2011, 13:50 |
|||
|
|||
обьясните пожалуйста как использовать cloneNode |