znaczacy > comp.lang.* > comp.lang.javascript

Michal M. Lechanski (01.08.2019, 22:22)
Mam taki script w <body> (do head nie mam dostepu), który wyswietlal
losowo jeden z obrazków. Ostatnio dodawalem kolejny obrazek i cos
zepsulem - obrazki sie nie wyswietlaja. Poza tym wszystko inne dziala.

Console z Developer Tools w Firefoksie pokazuje:

TypeError: document.getElementById(...) is null
loadHomeImage
<anonymous>

Podpowiedzcie prosze co zrobilem zle i jak to naprawic.
Z góry bardzo dziekuje.

Kod:

<script type="text/javascript">
function loadHomeImage(){
console.log('loadHomeImage();');
var imagenumber = 11 ;
var randomnumber = Math.random() ;
var rand1 = Math.round( (imagenumber-1) * randomnumber) + 1 ;
images = new Array;

// LIST OF IMAGES
images[0] ='<img src="http://images.fluidfolio.com/x/y/zzz1.jpg">';
images[1] ='<img src="http://images.fluidfolio.com/x/y/zzz2.jpg">'
images[2] ='<img src="http://images.fluidfolio.com/x/y/zzz3.jpg">';
images[3] ='<img src="http://images.fluidfolio.com/x/y/zzz4.jpg">';
images[4] ='<img src="http://images.fluidfolio.com/x/y/zzz5.jpg">';
images[5] ='<img src="http://images.fluidfolio.com/x/y/zzz6.jpg">';
images[6] ='<img src="http://images.fluidfolio.com/x/y/zzz7.jpg">';
images[7] ='<img src="http://images.fluidfolio.com/x/y/zzz8.jpg">';
images[8] ='<img src="http://images.fluidfolio.com/x/y/zzz9.jpg">';
images[9] ='<img src="http://images.fluidfolio.com/x/y/zzz10.jpg">';
images[10] ='<img src="https://images.fluidfolio.com/x/y/zzz11.jpg">';
var image = images[rand1];
captions = new Array;

// LIST OF CAPTÄ°ONS
captions[0] = "Pictures: 01";
captions[1] = "Pictures: 02";
captions[2] = "Pictures: 03";
captions[3] = "Pictures: 04";
captions[4] = "Pictures: 05";
captions[5] = "Pictures: 06";
captions[6] = "Pictures: 07";
captions[7] = "Pictures: 08";
captions[8] = "Pictures: 09";
captions[9] = "Pictures: 10";
captions[10] = "Pictures: 11";
var caption = captions[rand1];
document.getElementById('homepage-image').innerHTML = '<img src="' +
image + '" width="auto" height="400px">' + caption; //linia 155
};

loadHomeImage(); //linia 158
</script>
Tomek (02.08.2019, 09:25)
W dniu 01.08.2019 o 22:22, Michal M. Lechanski pisze:
[..]
> };
> loadHomeImage();
> </script>


Wywolujesz funkcje kiedy jeszcze nie istnieje (a raczej nie masz
gwarancji, ze istniej) "homepage-image".

W jQuery stosuje sie formulke, która rozwiazuje ten problem:

jQuery(document).ready(function() {

});

W internecie znajdziesz zamiennik tego w czystym JS.
zpksoft (02.08.2019, 14:48)
W dniu czwartek, 1 sierpnia 2019 22:22:09 UTC+2 uzytkownik Michal M. Lechanski napisal:
[..]
> </script>
> --
> Michal


onload()
Michal M. Lechanski (03.08.2019, 10:46)
W dniu 01.08.2019 o 21:22, Michal M. Lechanski pisze:

> [...]


Dziękuję bardzo za obie odpowiedzi.
Podobne wątki