1
angaran
Javascript problem
  • 2005/3/30 17:04

  • angaran

  • Not too shy to talk

  • Posts: 103

  • Since: 2003/8/17


Hi, I have this script:

<script type="text/javascript">
<!-- 
Article = new Array;
i=0;

Article[i] = new Array ('L' UE non conferma l'accordo con Microsoft','http://www.upyou.it/modules/news/article.php?storyid=389', '_blank');i++;
Article[i] = new Array ('Articoli dal Web: Ipod Shuffle, Star Wars - KOTOR II e altro','http://www.upyou.it/modules/news/article.php?storyid=388', '_blank');i++;
Article[i] = new Array ('nVidia al lavoro sulla serie 90 dei suoi driver','http://www.upyou.it/modules/news/article.php?storyid=387', '_blank');i++;
Article[i] = new Array ('Prossimo il rilascio di Windows XP Home Edition N','http://www.upyou.it/modules/news/article.php?storyid=386', '_blank');i++;

scrollerWidth = String(screen.width - 400);             // Width of entire scroller.
scrollerHeight = "25";             // Height of Scroller.
borderWidth = 1;                   // Width of border. (use 0 for no border).
borderColour = "#006600";          // Colour of scroller border. (Use either hexadecimal or text values. e.g. "#FF0000" or "Red") 
backColour = "#d7ebff";              // Colour of scroller background. (Use either hexadecimal or text values. e.g. "#FF0000" or "Red") 
staticColour = "#000000";          // Colour of scroller items that are NOT a link. (including scrollerDivider characters)
stopScroll = 1;                    // Pause the scroller on mouseOver. (use 0 for no.)
textAlignment="left";            // Alignment of each scroller item.  Only really makes a difference on vertical scroller
                                  // (center, left, right, justify)

// Scroller Links
linkFont = "arial";                // Font of scroller links;
linkWeight = "normal";             // Weight of scroller links;
linkColour = "#000080";            // Colour of scroller links
linkSize = "10";                   // Size of links (in points)
linkDecoration = "none";           // Decoration of links. (underline, overline, none)

// Scroller Links On MouseOver
slinkFont = "arial";               // Font of scroller lin????????º???ks;
slinkWeight = "normal";            // Weight of scroller links;
slinkColour = "#cc3333";           // Colour of scroller links
slinkSize = "10";                  // Size of links (in points)
slinkDecoration = "underline";     // Decoration of links. (underline, overline, none)

scrollerDivider = " - "; // Character to place between each scroller item. 
  
/* 
  Because Netscape version 4 does not support this scroller, configure the values below so NS4 users do not see an error. 
  In the scroller's place will be a static title which can be a link if require.  The appearance of the static text (colour, scroller border etc)
  will be exactly the same as for the working version in other browsers.
*/
ns4Text = "Click Here to visit the PlanMagic Software";  // Alternative text to display in Netscape 4.
ns4URL = "http://planmagic.com";            // URL of link in NS4. If no URL is required, enter "none"
ns4Target = "_top";                           // Frame target for link in NS4

//Browser Sniffer
var isIE = (document.getElementById && document.all)?true:false;
var 
isNS4 = (document.layers)?true:false;
var 
isNS6 = (document.getElementById && !document.all)?true:false;

style='<style type="text/css">';
style+='p.scroller{font-family:'+linkFont+'; color:'+staticColour+'; font-size:'+linkSize+'pt; font-weight:'+linkWeight+'; text-align:'+textAlignment+'}';
style+='a.rcScroller,a.rcScroller:active,a.rcScroller:visited{color:'+linkColour+';text-decoration:'+linkDecoration+'; font-weight:'+linkWeight+'}';
style+='a.rcScroller:hover{color:'+slinkColour+';text-decoration:'+slinkDecoration+'; font-weight:'+slinkWeight+'}';
style+='rcScrollerHoverNS{color:red;text-decoration:'+slinkDecoration+'; font-weight:'+slinkWeight+'}';
style+='</style>';
document.writeln(style);

// Build the scroller and place it on the page
function buildScroller()
{
  if(
isNS4){
    
scroller+='<table border="0" cellpadding="3" cellspacing="1" width="100%" height="'+scrollerHeight+'" bgcolor="'+backColour+'"><tr????????º???><td align="center" nowrap><p class="scroller">';
    if(
ns4URL.toLowerCase()!="none"){scroller+='<a href="'+ns4URL+'" class="rcScroller" target="'+ns4Target+'">'+ns4Text+'</a>';}
    else{
scroller+=ns4Text;} 
    
scroller+='</p></td></tr></table>'   
  
}else{
    
scroller='<table border="0" cellpadding="0" cellspacing="0" style="width:'+scrollerWidth+';height:'+scrollerHeight+';border:'+borderWidth+'px solid '+borderColour+';background-color:'+backColour+'">';
    
scroller+='<tr valign="middle"><td><div id="div" style="';
    
scroller+='width:'+scrollerWidth+'; position:relative; background-color:'+backColour+'; overflow:hidden">';
    
scroller+='<div id="div1" style="position:relative; left:0; z-index:1">';
    
scroller+='<table border="0" name="table" id="table"';
    
scroller+='><tr>';
    
y=0;
    while (
y<4)
    {
      for (
x=0; x<(Article.length); x++)
      {
        
scroller+='<td ';
        
scroller+='nowrap';
        if(
stopScroll==1){scroller+=' onMouseOver="stopScroller();" onMouseOut="setWidth()"';}
        
scroller+='><p class="scroller">';
        if(
Article[x][1].toLowerCase()!="none"){scroller+='<a class="rcScroller" href="'+Article[x][1]+'" target="'+Article[x][2]+'" >'+Article[x][0]+'</a>';
        }else{
scroller+=Article[x][0];}          
        
scroller+='</p></td>';
        
        if(
scrollerDivider.toLowerCase() != "none"){scroller+='<td nowrap><p class="scroller">'+scrollerDivider+'</p></td>';}
      }
      
y++
    }
    
scroller+='</tr></table></div></div></td></tr></table>';  
  }
  
document.writeln(scroller);
}
// Ensure the width of the scroller is divisible by 2. This allows smooth flowing of the scrolled content
function setWidth()
{ 
  
tableObj=(isIE)?document.all("table"):document.getElementById("table"); 
  
obj=(isIE)?document.all.div1:document.getElementById("div1");   
  
objWidth=getOffset(tableObj,"width");
  
HalfWidth=Math.floor(objWidth/2);
  
newWidth = (HalfWidth*2)+2;
  
obj.style.width=newWidth;
  
moveLayer(obj, newWidth);
  
}

// Move the layer by one pixel to the left
function moveLayer(obj, width)
{
  
  
maxLeft = (0-(width/2)+2)/2;
  
obj.style.left=(parseInt(obj.style.left) <= maxLeft)?0:parseInt(obj.style.left)-1;
  
timer = setTimeout ("moveLayer(obj, "+width+");", 25); 
}

// Get width and height of layer
function getOffset(obj, dim) 
{
  if(
dim=="width")
  {
    
oWidth = obj.offsetWidth;
    return 
oWidth;
  }  
  else if(
dim=="height")
  {
    
oHeight = obj.offsetHeight;
    return 
oHeight;
  }    
}

function 
stopScroller()
{
  
clearTimeout(timer);
}

function 
runScroller(){
  if(!
isNS4){setWidth();}
}

window.onload=runScroller;
buildScroller();

////// END OF SCRIPT  ///////////////////////////////////////////////////////////////////
//-->
</script>

Well, it is a text scroller and it works perfectly in my local machine both in IE and Opera. I put it into a template on my site ( mydownloads_index.html ) and it works perfectly in Opera but does some strange effect in IE. What's the problem? Could you suggest something?
Thank you