Напиши javascript-код, который по щелку на любой картинке на странице будет копировать в буфер ее html-атрибут title

**:**
Для реализации данной функциональности можно использовать событие "click" и метод document.execCommand() для копирования текста в буфер обмена.
Вот пример кода на JavaScript:
javascript
```
// Находим все картинки на странице
```
```
const images = document.getElementsByTagName('img');
```
```
// Добавляем обработчик события "click" для каждой картинки
```
```
for (let i = 0; i < images.length; i++) {
```
```
images[i].addEventListener('click', function() {
```
```
// Получаем значение атрибута "title"
```
```
const title = this.getAttribute('title');
```
```
// Создаем временный элемент textarea для копирования текста в буфер обмена
```
```
const tempEl = document.createElement('textarea');
```
```
tempEl.value = title;
```
```
document.body.appendChild(tempEl);
```
```
// Выделяем текст в элементе textarea
```
```
tempEl.select();
```
```
// Копируем выделенный текст в буфер обмена
```
``` document.execCommand('copy');
```
```
// Удаляем временный элемент textarea
```
```
document.body.removeChild(tempEl);
```
```
});
}
```
Этот код найдет все картинки на странице, добавит для них обработчик события "click", который при щелчке на картинке получит значение атрибута "title", скопирует его в буфер обмена и удалит временный элемент textarea.

Дальше убираем хемуляции с текстовым полем, заменив их на простое
```
navigator.clipboard.writeText(title);
```
выцепляем из кода веб-морды фрагмент с перечислением «серверных» , увеличиваем размеры и — в закладки. А, забыл, там еще в коде надо img на span поменять, потому что в html не img используется.

А это всё зачем? А затем, что в маленьком окошке не видно нихрена.

@johan В 21 веке это выглядит как-то так:

```javascript
for (let image of document.querySelector('img')) {
image.addEventListener(...);
...
}
```

@tennoseremel Кстати, Клавдия предлагает, по-моемеу, более разумный и быстрый вариант:
```
document.addEventListener('click', function(e) {
```
```
if (e.target.tagName === 'IMG') {
```
```
var title = e.target.getAttribute("title");
```
``` navigator.clipboard.writeText(title);
```
}
});
```

@johan Это означает выполнение скрипта на любой клик по странице, не только картинкам. Хотя если у тебя страница динамически изменяется аяксом, то можно.

Follow

@tennoseremel Ну, у меня на странице ТОЛЬКО картинки, так что вроде 1 слушатель и 1 функция вместо 100500 вроде логично.

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.