Для вашего массива длина массива равна 3 (например, name.length = 3). Но поскольку он хранит элемент, начинающийся с индекса 0, он имеет максимальный индекс 2.
Итак, вместо 'i ** & lt; = name.length' вы должны написать 'i & lt; ** name.length' чтобы избежать «ArrayIndexOutOfBoundsException».
И если вам нужен новый базовый URL для всех ссылок на странице, вы можете полностью избежать JS и использовать элемент <base>
.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
Может быть, этот фрагмент может помочь, все, что я сделал, это перебрал элементы img; схватил SRC и сохранил во временную переменную; добавили http: // domain + src в качестве нового атрибута источника.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title></title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<!-- Page Content -->
<div class="container">
<div class="row">
<div class="col-lg-12 text-center">
<h1 class="mt-5">Test</h1>
<img src="/img/img_01.png">
<img src="/img/img_02.png">
<img src="/img/img_03.png">
</div>
</div>
</div>
<!-- Bootstrap core JavaScript -->
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js"></script>
<script>
$("img").each(function(){
var src = $(this).attr('src');
$(this).attr('src', 'http://www.blah.com' + src);
})
</script>
</body>
</html>
Вариация на тему возможно
let host='http://example.com/';
let col=document.getElementsByTagName('img');
col.forEach( img =>{
if( !~img.src.indexOf( host ) )img.src = host + img.src;
});