Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Co tu jest źle?

13 views
Skip to first unread message

Michal M. Lechanski

unread,
Aug 1, 2019, 4:22:09 PM8/1/19
to
Mam taki script w <body> (do head nie mam dostępu), który wyświetlał
losowo jeden z obrazków. Ostatnio dodawałem kolejny obrazek i coś
zepsułem - obrazki się nie wyświetlają. Poza tym wszystko inne działa.

Console z Developer Tools w Firefoksie pokazuje:

TypeError: document.getElementById(...) is null
loadHomeImage http://lechanski.net/:155
<anonymous> http://lechanski.net/:158

Podpowiedzcie proszę co zrobiłem źle i jak to naprawić.
Z góry bardzo dziękuję.


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>


--
Michał

Tomek

unread,
Aug 2, 2019, 3:25:37 AM8/2/19
to
W dniu 01.08.2019 o 22:22, Michal M. Lechanski pisze:
> Mam taki script w <body> (do head nie mam dostępu), który wyświetlał
> losowo jeden z obrazków. Ostatnio dodawałem kolejny obrazek i coś
> zepsułem - obrazki się nie wyświetlają. Poza tym wszystko inne działa.
>
> Console z Developer Tools w Firefoksie pokazuje:
>
> TypeError: document.getElementById(...) is null
> loadHomeImage http://lechanski.net/:155
> <anonymous> http://lechanski.net/:158
>
> Podpowiedzcie proszę co zrobiłem źle i jak to naprawić.
> Z góry bardzo dziękuję.
>
>
> Kod:
>
> <script type="text/javascript">
> function loadHomeImage(){
> document.getElementById('homepage-image').innerHTML = 'xxx';
> };
>
> loadHomeImage();
> </script>
>
>

Wywołujesz funkcję kiedy jeszcze nie istnieje (a raczej nie masz
gwarancji, że istniej) "homepage-image".

W jQuery stosuje się formułkę, która rozwiązuje ten problem:

jQuery(document).ready(function() {

});

W internecie znajdziesz zamiennik tego w czystym JS.

zpksoft

unread,
Aug 2, 2019, 8:48:59 AM8/2/19
to
onload()

Michal M. Lechanski

unread,
Aug 3, 2019, 4:46:02 AM8/3/19
to
W dniu 01.08.2019 o 21:22, Michal M. Lechanski pisze:

> [...]

Dziękuję bardzo za obie odpowiedzi.

--
Michał
0 new messages