schabluk Posted May 15, 2006 Share Posted May 15, 2006 Hi folks and sorry for my bad English ;]i have a problem with script I want to run from onLoad HTML attribute.take a look at this code...[code]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> New Document </TITLE></HEAD><BODY><script LANGUAGE="JavaScript"><!--SNOW_dx = new Array();SNOW_xp = new Array();SNOW_yp = new Array();SNOW_am = new Array();SNOW_stx = new Array();SNOW_sty = new Array();for (i = 0; i < 20; ++ i){SNOW_dx[i] = 0; SNOW_xp[i] = Math.random()*(650-50);SNOW_yp[i] = 36 + Math.random()*650;SNOW_am[i] = Math.random()*20;SNOW_stx[i] = 0.02 + Math.random()/10;SNOW_sty[i] = 0.7 + Math.random();if (i == 0) makeFlake(i);else makeFlake(i);}function makeFlake(i){var daBody = document.getElementsByTagName('body')[0];hcXdiv = document.createElement('div');hcXimg = document.createElement('img');hcXdiv.appendChild(hcXimg);daBody.appendChild(hcXdiv);hcXdiv.setAttribute('id', 'SNOW_flake' + i);hcXdiv.style.position='absolute';hcXimg.setAttribute('src', 'http://localhost/icons/folder.gif');};function SNOW_Weather(){for (i = 0; i < 20; ++ i){SNOW_yp[i] += SNOW_sty[i];if (SNOW_yp[i] > 650-50){SNOW_xp[i] = Math.random()*(650-SNOW_am[i]-30);SNOW_yp[i] = 0;SNOW_stx[i] = 0.02 + Math.random()/10;SNOW_sty[i] = 0.7 + Math.random();}SNOW_dx[i] +=SNOW_stx[i];document.getElementById('SNOW_flake'+i).style.top=SNOW_yp[i]+'px';document.getElementById('SNOW_flake'+i).style.left=SNOW_xp[i] + SNOW_am[i]*Math.sin(SNOW_dx[i])+'px';}setTimeout('SNOW_Weather()',10);}//--></SCRIPT><img src="http://www.google.pl/images/hp0.gif" onLoad="javascript:SNOW_Weather();"></BODY></HTML>[/code]it works fine, but if I want to put variables and functions declaration into onLoad attribute, \it crash... :[code]<img src="http://www.google.pl/images/hp0.gif" onLoad="javascript:SNOW_dx = new Array();SNOW_xp = new Array();SNOW_yp = new Array();SNOW_am = new Array();SNOW_stx = new Array();SNOW_sty = new Array();for (i = 0; i < 20; ++ i){SNOW_dx[i] = 0; SNOW_xp[i] = Math.random()*(650-50);SNOW_yp[i] = 36 + Math.random()*650;SNOW_am[i] = Math.random()*20;SNOW_stx[i] = 0.02 + Math.random()/10;SNOW_sty[i] = 0.7 + Math.random();if (i == 0) makeFlake(i);else makeFlake(i);}function makeFlake(i){var daBody = document.getElementsByTagName('body')[0];hcXdiv = document.createElement('div');hcXimg = document.createElement('img');hcXdiv.appendChild(hcXimg);daBody.appendChild(hcXdiv);hcXdiv.setAttribute('id', 'SNOW_flake' + i);hcXdiv.style.position='absolute';hcXimg.setAttribute('src', 'http://localhost/icons/folder.gif');};function SNOW_Weather(){for (i = 0; i < 20; ++ i){SNOW_yp[i] += SNOW_sty[i];if (SNOW_yp[i] > 650-50){SNOW_xp[i] = Math.random()*(650-SNOW_am[i]-30);SNOW_yp[i] = 0;SNOW_stx[i] = 0.02 + Math.random()/10;SNOW_sty[i] = 0.7 + Math.random();}SNOW_dx[i] +=SNOW_stx[i];document.getElementById('SNOW_flake'+i).style.top=SNOW_yp[i]+'px';document.getElementById('SNOW_flake'+i).style.left=SNOW_xp[i] + SNOW_am[i]*Math.sin(SNOW_dx[i])+'px';}setTimeout('SNOW_Weather()',10);}SNOW_Weather();">[/code]I'm out of idea... simple scripts like [code]<BODY onLoad="text= new Array('ala');alert(text);">[/code]works for me.. Link to comment https://forums.phpfreaks.com/topic/9708-try-to-place-script-in-onload/ Share on other sites More sharing options...
GBS Posted May 18, 2006 Share Posted May 18, 2006 Hi there,,Try that,,... that one works:[code]<html><head><title> New Document </title></head><body onLoad="javascript:function SNOW_Weather(){alert('hmm,,');};SNOW_Weather();"></body></html>[/code]but that one doesn't work:[code]<html><head><title> New Document </title></head><body onLoad="javascript:function SNOW_Weather(){alert('hmm,,');};SNOW_Weather();setTimeout('SNOW_Weather()',10);"></body></html>[/code]& Firefox reports:>Erreur : SNOW_Weather is not defined<Same error for:[code]<html><head><title> New Document </title></head><body onLoad="javascript:function SNOW_Weather(){alert('hmm,,');};SNOW_Weather();"><script>SNOW_Weather();</script></body></html>[/code]It means the function is defined just for the loading part,... not for the rest of the time,,... I suppose,...Btw,,... I don't see the usefull of making such complicated things,... as your first code works fine,... :)Hoping it helps,,l8tr,, Link to comment https://forums.phpfreaks.com/topic/9708-try-to-place-script-in-onload/#findComment-36774 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.