Click to See Complete Forum and Search --> : Help with this script please


lightingbird
01-03-2004, 04:19 PM
I got this from the source code section and I keep getting a undefined when I run it after the intial messages pass on this message scroller.

Can someone help me fix this and explain it too me?


Here is the code:



<html>
<head>
<SCRIPT LANGUAGE="JavaScript">


<!-- Begin
var swidth=750

var sheight=120


var sspeed=4


var singletext=new Array()
singletext[0]='<div align="center"><font face=Arial size=3 color="white"><b>NEWS</b><br>Size, Speed, Style <b>More News<br>Please help me figure this out.<br> <b><u>Information</u></b></div></FONT>'
singletext[1]='<div align="center"><font face=Arial size=3 color="white">Anouncements<br>and<font color="#FFFF00"><b><i>images</i></b><p></font></div>'
singletext[2]='<div align="center"><font face=Arial size=3 color="white">This is great!<br>You can use <i>all</i> the <b>basic</b><br><b>HTML codes</b></font></div>'
singletext[3]='<div align="center"><font face=Arial size=3 color="white"><b>JavaScript Source</b><br>A "cut & paste" JavaScript library<br>with <font color="red"><b>tons</b></font> of free JavaScripts!<p><img src="/img/1.gif" width="100" height="39" border="0"></font></div>'
if (singletext.length>1)
i=1
else
i=0
function start(){
if (document.all){
ieslider1.style.top=sheight
iemarquee(ieslider1)
}
else if (document.layers){
document.ns4slider.document.ns4slider1.top=sheight
document.ns4slider.document.ns4slider1.visibility='show'
ns4marquee(document.ns4slider.document.ns4slider1)
}
else if (document.getElementById&&!document.all){
document.getElementById('ns6slider1').style.top=sheight
ns6marquee(document.getElementById('ns6slider1'))
}
}
function iemarquee(whichdiv){
iediv=eval(whichdiv)
if (iediv.style.pixelTop>0&&iediv.style.pixelTop<=sspeed){
iediv.style.pixelTop=0
setTimeout("iemarquee(iediv)",100)
}
if (iediv.style.pixelTop>=sheight*-1){
iediv.style.pixelTop-=sspeed
setTimeout("iemarquee(iediv)",100)
}
else{
iediv.style.pixelTop=sheight
iediv.innerHTML=singletext[i]
if (i==singletext.length-1)
i=0
else
i++
}
}
function ns4marquee(whichlayer){
ns4layer=eval(whichlayer)
if (ns4layer.top>0&&ns4layer.top<=sspeed){
ns4layer.top=0
setTimeout("ns4marquee(ns4layer)",100)
}
if (ns4layer.top>=sheight*-1){
ns4layer.top-=sspeed
setTimeout("ns4marquee(ns4layer)",100)
}
else{
ns4layer.top=sheight
ns4layer.document.write(singletext[i])
ns4layer.document.close()
if (i==singletext.length-1)
i=0
else
i++
}
}
function ns6marquee(whichdiv){
ns6div=eval(whichdiv)
if (parseInt(ns6div.style.top)>0&&parseInt(ns6div.style.top)<=sspeed){
ns6div.style.top=0
setTimeout("ns6marquee(ns6div)",100)
}
if (parseInt(ns6div.style.top)>=sheight*-1){
ns6div.style.top=parseInt(ns6div.style.top)-sspeed
setTimeout("ns6marquee(ns6div)",100)
}
else{
ns6div.style.top=sheight
ns6div.innerHTML=singletext[i]
if (i==singletext.length-1)
i=0
else
i++
}
}
// End -->
</script>
</head>
<body>
<BODY onLoad="start()">
<div align="center">
<span style="borderWidth:1; borderColor:red; width:350; height:72; background:navy">
<ilayer id="ns4slider" width="&{swidth};" height="&{sheight};">
<layer id="ns4slider1" height="&{sheight};" onmouseover="sspeed=0;" onmouseout="sspeed=2">
<script language="JavaScript">
if (document.layers)
document.write(singletext[0])
</script>
</layer></ilayer>
<script language="JavaScript">
if (document.all){
document.writeln('<div style="position:relative;overflow:hidden;width:'+swidth+';height:'+sheight+';clip:rect(0 '+swidth+' '+sheight+' 0);border:1 solid red;" onmouseover="sspeed=0;" onmouseout="sspeed=2">')
document.writeln('<div id="ieslider1" style="position:relative;width:'+swidth+';">')
document.write(singletext[0])
document.writeln('</div></div>')
}
if(document.getElementById&&!document.all){
document.writeln('<div style="position:relative;overflow:hidden;width:'+swidth+';height:'+sheight+';clip:rect(0 '+swidth+' '+sheight+' 0);border:1px solid red;" onmouseover="sspeed=0;" onmouseout="sspeed=2">')
document.writeln('<div id="ns6slider1" style="position:relative;width:'+swidth+';">')
document.write(singletext[0])
document.writeln('</div></div>')
}
</script></span>
</div>
</body>
</html>

olerag
01-03-2004, 05:18 PM
This works fine in IE6.

Note though that after cutting your code I had to remove
some embedded spaces in the last <script> clause following
the code in each "if" statement.

I also changed all <script language="javascript"> statements
(deprecated) to <script type="text/javascript">.

If you are still getting the error, at what line in the page
does your script fail? Use your javascript console (NN) or
enable your "script debugging" for IE.

lightingbird
01-03-2004, 05:29 PM
Its not failing.

It works fine scrolling the only message I have inputted into it but then it starts scrolling:

UNDEFINED

Thats the problem that I am having.

olerag
01-03-2004, 05:41 PM
I guess I'm not with you on this. Your first post mentioned
an "undefine" after the initial message and your second
post mentions something about "input".

The marque is displaying four separate pieces of info but
does not permit the use of user input.

Have you changed the code from what you originally
provided by putting in your own messages??

lightingbird
01-03-2004, 06:20 PM
Yes I did and I have been trying to get it to work even with the orginal code and I keep getting the "undefined" word scrolling up after the intial scroling message.

Here is the actual code completely:





<!-- THREE STEPS TO INSTALL MULTIPLE MESSAGE SCROLLER:

1. Copy the coding into the HEAD of your HTML document
2. Add the onLoad event handler into the BODY tag
3. Put the last coding into the BODY of your HTML document -->

<!-- STEP ONE: Paste this code into the HEAD of your HTML document -->

<HEAD>

<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
//slider's width
var swidth=350

//slider's height
var sheight=72

//slider's speed
var sspeed=2

//messages: change to your own; use as many as you'd like; set up Hyperlinks to URLs as you normally do: <a target=... href="... URL ...">..message..</a>
var singletext=new Array()
singletext[0]='<div align="center"><font face=Arial size=3 color="white"><b>Multiple Scroller</b><br>Size, Speed, Style <b>adjustable.</b><br>This message may use <b><u>Hyperlinks</u></b></div></FONT>'
singletext[1]='<div align="center"><font face=Arial size=3 color="white">Use this for announcements<br>or even <font color="#FFFF00"><b><i>images</i></b><p><img src="/img/1.gif" width="100" height="39" border="0"></font></div>'
singletext[2]='<div align="center"><font face=Arial size=3 color="white">This is great!<br>You can use <i>all</i> the <b>basic</b><br><b>HTML codes</b></font></div>'
singletext[3]='<div align="center"><font face=Arial size=3 color="white"><b>JavaScript Source</b><br>A "cut & paste" JavaScript library<br>with <font color="red"><b>tons</b></font> of free JavaScripts!<p><img src="/img/1.gif" width="100" height="39" border="0"></font></div>'
if (singletext.length>1)
i=1
else
i=0
function start(){
if (document.all){
ieslider1.style.top=sheight
iemarquee(ieslider1)
}
else if (document.layers){
document.ns4slider.document.ns4slider1.top=sheight
document.ns4slider.document.ns4slider1.visibility='show'
ns4marquee(document.ns4slider.document.ns4slider1)
}
else if (document.getElementById&&!document.all){
document.getElementById('ns6slider1').style.top=sheight
ns6marquee(document.getElementById('ns6slider1'))
}
}
function iemarquee(whichdiv){
iediv=eval(whichdiv)
if (iediv.style.pixelTop>0&&iediv.style.pixelTop<=sspeed){
iediv.style.pixelTop=0
setTimeout("iemarquee(iediv)",100)
}
if (iediv.style.pixelTop>=sheight*-1){
iediv.style.pixelTop-=sspeed
setTimeout("iemarquee(iediv)",100)
}
else{
iediv.style.pixelTop=sheight
iediv.innerHTML=singletext[i]
if (i==singletext.length-1)
i=0
else
i++
}
}
function ns4marquee(whichlayer){
ns4layer=eval(whichlayer)
if (ns4layer.top>0&&ns4layer.top<=sspeed){
ns4layer.top=0
setTimeout("ns4marquee(ns4layer)",100)
}
if (ns4layer.top>=sheight*-1){
ns4layer.top-=sspeed
setTimeout("ns4marquee(ns4layer)",100)
}
else{
ns4layer.top=sheight
ns4layer.document.write(singletext[i])
ns4layer.document.close()
if (i==singletext.length-1)
i=0
else
i++
}
}
function ns6marquee(whichdiv){
ns6div=eval(whichdiv)
if (parseInt(ns6div.style.top)>0&&parseInt(ns6div.style.top)<=sspeed){
ns6div.style.top=0
setTimeout("ns6marquee(ns6div)",100)
}
if (parseInt(ns6div.style.top)>=sheight*-1){
ns6div.style.top=parseInt(ns6div.style.top)-sspeed
setTimeout("ns6marquee(ns6div)",100)
}
else{
ns6div.style.top=sheight
ns6div.innerHTML=singletext[i]
if (i==singletext.length-1)
i=0
else
i++
}
}
// End -->
</script>

</HEAD>

<!-- STEP TWO: Insert the onLoad event handler into your BODY tag -->

<BODY onLoad="start()">

<!-- STEP THREE: Copy this code into the BODY of your HTML document -->

<div align="center">
<span style="borderWidth:1; borderColor:red; width:350; height:72; background:navy">
<ilayer id="ns4slider" width="&{swidth};" height="&{sheight};">
<layer id="ns4slider1" height="&{sheight};" onmouseover="sspeed=0;" onmouseout="sspeed=2">
<script language="JavaScript">
if (document.layers)
document.write(singletext[0])
</script>
</layer></ilayer>
<script language="JavaScript">
if (document.all){
document.writeln('<div style="position:relative;overflow:hidden;width:'+swidth+';height:'+sheight+';clip:rect(0 '+swidth+' '+sheight+' 0);border:1 solid red;" onmouseover="sspeed=0;" onmouseout="sspeed=2">')
document.writeln('<div id="ieslider1" style="position:relative;width:'+swidth+';">')
document.write(singletext[0])
document.writeln('</div></div>')
}
if(document.getElementById&&!document.all){
document.writeln('<div style="position:relative;overflow:hidden;width:'+swidth+';height:'+sheight+';clip:rect(0 '+swidth+' '+sheight+' 0);border:1px solid red;" onmouseover="sspeed=0;" onmouseout="sspeed=2">')
document.writeln('<div id="ns6slider1" style="position:relative;width:'+swidth+';">')
document.write(singletext[0])
document.writeln('</div></div>')
}
</script></span>
</div>


<p><center>
<font face="arial, helvetica" size"-2">Free JavaScripts provided<br>
by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
</center><p>

<!-- Script Size: 5.31 KB -->

olerag
01-03-2004, 08:01 PM
Well the code you provided in your first post appears to
combine all three procedures in your third post.

This works fine in IE6 (with the minor adjustments I
previously mentioned).

Did you enable your JS console to see which line(s) in the
script your error(s) appear?