Javascript букмарклет не меняет источник изображения - PullRequest
1 голос
/ 24 января 2020

Я уже некоторое время пытаюсь создать букмарклет, который просто заменяет все изображения веб-сайта одним другим. Попробовав и попробовав еще, я получил строку кода, которая должна работать, но она просто ... не работает.

javascript:function img_find() {var imgs = document.querySelectorAll("img");return imgs;}  var images = img_find(); for (var i = 0; i < images.length; i++) {images[i].src.replace(images[i].src, "https://api.time.com/wp-content/uploads/2019/08/caveman-spongebob-spongegar.png";}

Это некоторый код, который я пробовал , Я также попытался:

javascript:function img_find() {var imgs = document.querySelectorAll("img");return imgs;}  var images = img_find(); for (var i = 0; i < images.length; i++) {images[i].src = "https://api.time.com/wp-content/uploads/2019/08/caveman-spongebob-spongegar.png";}

Оба фрагмента кода по какой-то причине не работают, первый ничего не делает, а второй просто заменяет всю веб-страницу URL.

1 Ответ

0 голосов
/ 25 января 2020

Как сказано в комментарии, ваш второй фрагмент просто работает, как и ожидалось, что касается первых фрагментов, он не работает, потому что метод replace не изменяет исходную переданную ему строку, а возвращает вместо нее новую замещенную строку. Другими словами, в первом фрагменте вы должны написать внутри цикла for:

images[i].src = images[i].src.replace(images[i].src, "https://api.time.com/wp-content/uploads/2019/08/caveman-spongebob-spongegar.png");

вместо вашего:

images[i].src.replace(images[i].src, "https://api.time.com/wp-content/uploads/2019/08/caveman-spongebob-spongegar.png");

При этом я сказал, что в любом случае я буду использовать второй фрагмент, Первый - это как использовать дрель для прокола листа бумаги.

Первый фрагмент

function img_find() {
  var imgs = document.querySelectorAll("img");
  return imgs;
}

var images = img_find();

for (var i = 0; i < images.length; i++) {
  
  images[i].src = images[i].src.replace(images[i].src, "https://api.time.com/wp-content/uploads/2019/08/caveman-spongebob-spongegar.png");
  
}
<div>
  <img src="https://via.placeholder.com/150" width="150">
  <img src="https://via.placeholder.com/150" width="150">
  <img src="https://via.placeholder.com/150" width="150">
  <img src="https://via.placeholder.com/150" width="150">
  <img src="https://via.placeholder.com/150" width="150">
</div>

Второй фрагмент

function img_find() {
  var imgs = document.querySelectorAll("img");
  return imgs;
}

var images = img_find();

for (var i = 0; i < images.length; i++) {
  
  images[i].src = "https://api.time.com/wp-content/uploads/2019/08/caveman-spongebob-spongegar.png";
  
}
<div>
  <img src="https://via.placeholder.com/150" width="150">
  <img src="https://via.placeholder.com/150" width="150">
  <img src="https://via.placeholder.com/150" width="150">
  <img src="https://via.placeholder.com/150" width="150">
  <img src="https://via.placeholder.com/150" width="150">
</div>
...