Problem może "wywoływać" linia 12
<script type="text/javascript">
var obrazki = new Array();
obrazki[1] = "images/1.2.jpg";
obrazki[2] = "images/2.2.jpg";
var sekund = 1; //co ile sekund ma sie zmieniac obrazek
var a = 1;
function zmien()
{
var ile = obrazki.length;
document.getElementById("obrazek").src = obrazki[a];
a++;
if(ile==a) {
a=1;
}
}
setInterval("zmien()", sekund*1000);
</script>
ponieważ jak napisałeś
oddzielnie jako plik JS podpiąć do <head>
spowodowane jest to tym, że kod js-a uruchamia się szybciej niż element html o id obrazek "pojawia" się w DOM Twojej strony. Kod sekcji head jest szybciej renderowany niż body
[ EDIT ]
W samej funkcji zmieniaj tylko indeks obrazka z tablicy z obrazkami.
a setInterval "wywołaj" np. z onload strony.
propozycja zmian
const obrazki = [
'images/1.2.jpg', // obrazki[0]
'images/2.2.jpg' // obrazki[1]
];
const obrazki_ile = obrazki.length;
const sekund = 1000;
let obrazek_index = 0;
function zmienObrazek()
{
document.getElementById("obrazek").src = obrazki[obrazek_index];
obrazek_index = (obrazek_index == obrazki_ile - 1) ? 0 : obrazek_index + 1;
}
window.onload = load;
function load() {
setInterval(zmienObrazek, sekund);
}
P.S.
const obrazki = [
'', // obrazki[0]
'images/1.2.jpg', // obrazki[1]
'images/2.2.jpg' // obrazki[2]
];