...

View Full Version : getting "null or not an object" error



WhipPrincess
10-20-2003, 12:32 AM
Hello,
I want to use a script multiple times on one page. I have read about the onload event handler conflict and think I have that figured out. However, when I do put both events in the body tag I get an Error stating 'stlye,moxopacity' is null or not an object. The script works perfectly if there is only one on the page. So I'm guessing I have a name conflict but have absolutely no idea how to fix it, hence my post.
Thank you in advance for any help.
Here is the script

<script language="JavaScript1.2">

//Fade-in image slideshow- By Dynamic Drive
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//This credit MUST stay intact for use

var slideshow_width='250px' //SET IMAGE WIDTH
var slideshow_height='188px' //SET IMAGE HEIGHT
var pause=1000 //SET PAUSE BETWEEN SLIDE (3000=3 seconds)

var fadeimages=new Array()
//SET IMAGE PATHS. Extend or contract array as needed
fadeimages[0]="images/privatepage/trap11.jpg"
fadeimages[1]="images/privatepage/trap12.jpg"
fadeimages[2]="images/privatepage/trap13.jpg"
fadeimages[3]="images/privatepage/trap14.jpg"
fadeimages[4]="images/privatepage/trap15.jpg"
fadeimages[5]="images/privatepage/trap16.jpg"
fadeimages[6]="images/privatepage/trap17.jpg"
fadeimages[7]="images/privatepage/trap18.jpg"
fadeimages[8]="images/privatepage/trap19.jpg"
fadeimages[9]="images/privatepage/trap20.jpg"
fadeimages[10]="images/privatepage/trap21.jpg"
fadeimages[11]="images/privatepage/trap22.jpg"
fadeimages[12]="images/privatepage/trap23.jpg"
fadeimages[13]="images/privatepage/trap24.jpg"

////NO need to edit beyond here/////////////

var preloadedimages=new Array()
for (p=0;p<fadeimages.length;p++){
preloadedimages[p]=new Image()
preloadedimages[p].src=fadeimages[p]
}

var ie4=document.all
var dom=document.getElementById

if (ie4||dom)
document.write('<div style="position:relative;width:'+slideshow_width+';height:'+slideshow_height+';overflow:hidden"><div id="canvas0" style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;left:0;filter:alpha(op acity=10);-moz-opacity:10"></div><div id="canvas1" style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;left:0;filter:alpha(op acity=10);-moz-opacity:10"></div></div>')
else
document.write('<img name="defaultslide" src="'+fadeimages[0]+'">')

var curpos=10
var degree=10
var curcanvas="canvas0"
var curimageindex=0
var nextimageindex=1


function fadepic(){
if (curpos<100){
curpos+=10
if (tempobj.filters)
tempobj.filters.alpha.opacity=curpos
else if (tempobj.style.MozOpacity)
tempobj.style.MozOpacity=curpos/100
}
else{
clearInterval(dropslide)
nextcanvas=(curcanvas=="canvas0")? "canvas0" : "canvas1"
tempobj=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas)
tempobj.innerHTML='<img src="'+fadeimages[nextimageindex]+'">'
nextimageindex=(nextimageindex<fadeimages.length-1)? nextimageindex+1 : 0
setTimeout("rotateimage()",pause)
}
}

function rotateimage(){
if (ie4||dom){
resetit(curcanvas)
var crossobj=tempobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.style.zIndex++
var temp='setInterval("fadepic()",50)'
dropslide=eval(temp)
curcanvas=(curcanvas=="canvas0")? "canvas1" : "canvas0"
}
else
document.images.defaultslide.src=fadeimages[curimageindex]
curimageindex=(curimageindex<fadeimages.length-1)? curimageindex+1 : 0
}

function resetit(what){
curpos=10
var crossobj=ie4? eval("document.all."+what) : document.getElementById(what)
if (crossobj.filters)
crossobj.filters.alpha.opacity=curpos
else if (crossobj.style.MozOpacity)
crossobj.style.MozOpacity=curpos/100
}

function startit(){
var crossobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.innerHTML='<img src="'+fadeimages[curimageindex]+'">'
rotateimage()
}

if (ie4||dom)
window.onload=startit
else
setInterval("rotateimage()",pause)

</script>

justame
10-20-2003, 12:57 AM
whi...
/me is just a guessing® here 'cept did notice??? in your 'script' you have it as... moz-opacity
mayyybe thattts why???

beetle
10-20-2003, 01:48 AM
That won't work for this problem. To use the same script twice on a page, you need to:

1) Duplicate all the code and enumerate all variables and functions (not recommended)
2) Rewrite the script as to be OO
3) Use and existing OO slideshow script

If you fancy #3, just look at my SlideShow class (http://www.peterbailey.net/dev/jsclasses/)

WhipPrincess
10-20-2003, 07:58 PM
Thanks Beetle
Your classed look very interesting.



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum