Avatar billede trust1 Nybegynder
26. juni 2003 - 18:18 Der er 4 kommentarer og
1 løsning

Fejl i script - Ekspert søges

Jeg har en irriterende pop up box, der siger der er fejl i linie 223, har kikket lidt på det, men kan ikke rigtigt finde fejlen. Skal lige siges at det er noget til vores test udstyr på arbejdet.
Klik på linket.
http://www.my-hyundai.dk/test/AIRBAG_attenzione.htm
Avatar billede Slettet bruger
26. juni 2003 - 18:36 #1
De to linier fejlen opstår i er:
function animate()
{
    el = animateElements[currentElement]
    animation = el.getAttribute(dynamicanimAttr, false)
//....Mer kode...

Nu aner jeg ikke hvad animate() skal gøre...
Under alle omstændigheder skal variablen currentElement være defineret inden animate() kaldes.
Hvilken værdi currentElement skal have ANER jeg ikke. Men currentElement skal være integer og større end 0.
Avatar billede trust1 Nybegynder
26. juni 2003 - 18:48 #2
Nogen forslag til ændring, så jeg kan prøve at se om det virker.
Avatar billede edutasia Nybegynder
26. juni 2003 - 21:08 #3
Der ser ud til at være nogle mangler på siden. Scriptet, der fejler, skal have information om, hvilke(t) element(er), der skal animeres. Jeg prøvede følgende, og nu virker det uden fejlmeddelelser (jeg ved dog ikke, om resultatet er det ønskede? :)

1. Flyttede hele scriptet op i <head></head>

2. Satte <span id="ani1" dynamicanimation="zoomIn"> og </span> rundt om alt indholdet i <body></body>

3. Satte "ani1" ind i arrayet animateElements i starten af scriptet

Her er resultatet:

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<META NAME="Generator" CONTENT="Microsoft Word 97">
<TITLE>AIRBAG_attenzione-dan</TITLE>
<META NAME="Template" CONTENT="C:\PROGRAMMER\MICROSOFT OFFICE\OFFICE\html.dot">
<script language="JavaScript" fptype="dynamicanimation"><!--
  // If you want to change this script, you must also make the following
  // changes so that FrontPage will not overwrite your new script.
  // In the script tag, change type="dynamicanimation" to type="mydynamicanimation"
  // In the first script statement, change "dynamicanimation" to "mydynamicanimation"
  // Throughout the HTML content, change dynamicanimation= to mydynamicanimation=
  // Change function dynAnimation to function mydynAnimation
  // In the body tag, change onload="dynAnimation()" to onload="mydynAnimation()"
  dynamicanimAttr = "dynamicanimation"
  animateElements = new Array('ani1')
  currentElement = 0
  speed = 1
  stepsZoom = 35
  stepsWord = 8
  stepsFly = 12
  stepsSpiral = 16
  steps = stepsZoom
  step = 0
  outString = ""
  function dynAnimation()
  {
    var ms = navigator.appVersion.indexOf("MSIE")
    ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
    if(!ie4)
    {
      if((navigator.appName == "Netscape") &&
        (parseInt(navigator.appVersion.substring(0, 1)) >= 4))
      {
        for (index=document.layers.length-1; index >= 0; index--)
        {
            layer=document.layers[index]
            if (layer.left==10000)
                layer.left=0
        }
      }
      return
    }
    for (index=document.all.length-1; index >= document.body.sourceIndex; index--)
    {
      el = document.all[index]
      animation = el.getAttribute(dynamicanimAttr, false)
      if(null != animation)
      {
        if(animation == "dropWord" || animation == "flyTopRightWord" || animation == "flyBottomRightWord")
        {
          ih = el.innerHTML
          outString = ""
          i1 = 0
          iend = ih.length
          while(true)
          {
            i2 = startWord(ih, i1)
            if(i2 == -1)
              i2 = iend
            outWord(ih, i1, i2, false, "")
            if(i2 == iend)
              break
            i1 = i2
            i2 = endWord(ih, i1)
            if(i2 == -1)
              i2 = iend
            outWord(ih, i1, i2, true, animation)
            if(i2 == iend)
              break
            i1 = i2
          }
          document.all[index].innerHTML = outString
          document.all[index].style.posLeft = 0
          document.all[index].setAttribute(dynamicanimAttr, null)
        }
        if(animation == "zoomIn" || animation == "zoomOut")
        {
          ih = el.innerHTML
          outString = "<SPAN " + dynamicanimAttr + "=\"" + animation + "\" style=\"position: relative; left: 10000;\">"
          outString += ih
          outString += "</SPAN>"
          document.all[index].innerHTML = outString
          document.all[index].style.posLeft = 0
          document.all[index].setAttribute(dynamicanimAttr, null)
        }
      }
    }
    i = 0
    for (index=document.body.sourceIndex; index < document.all.length; index++)
    {
      el = document.all[index]
      animation = el.getAttribute(dynamicanimAttr, false)
      if (null != animation)
      {
        if(animation == "flyLeft")
        {
          el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
          el.style.posTop = 0
        }
        else if(animation == "flyRight")
        {
          el.style.posLeft = 10000-offsetLeft(el)+document.body.offsetWidth
          el.style.posTop = 0
        }
        else if(animation == "flyTop" || animation == "dropWord")
        {
          el.style.posLeft = 0
          el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight
        }
        else if(animation == "flyBottom")
        {
          el.style.posLeft = 0
          el.style.posTop = document.body.scrollTop-offsetTop(el)+document.body.offsetHeight
        }
        else if(animation == "flyTopLeft")
        {
          el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
          el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight
        }
        else if(animation == "flyTopRight" || animation == "flyTopRightWord")
        {
          el.style.posLeft = 10000-offsetLeft(el)+document.body.offsetWidth
          el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight
        }
        else if(animation == "flyBottomLeft")
        {
          el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
          el.style.posTop = document.body.scrollTop-offsetTop(el)+document.body.offsetHeight
        }
        else if(animation == "flyBottomRight" || animation == "flyBottomRightWord")
        {
          el.style.posLeft = 10000-offsetLeft(el)+document.body.offsetWidth
          el.style.posTop = document.body.scrollTop-offsetTop(el)+document.body.offsetHeight
        }
        else if(animation == "spiral")
        {
          el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
          el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight
        }
        else if(animation == "zoomIn")
        {
          el.style.posLeft = 10000
          el.style.posTop = 0
        }
        else if(animation == "zoomOut")
        {
          el.style.posLeft = 10000
          el.style.posTop = 0
        }
        else
        {
          el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
          el.style.posTop = 0
        }
        el.initLeft = el.style.posLeft
        el.initTop = el.style.posTop
        animateElements[i++] = el
      }
    }
    window.setTimeout("animate();", speed)
  }
  function offsetLeft(el)
  {
    x = el.offsetLeft
    for (e = el.offsetParent; e; e = e.offsetParent)
      x += e.offsetLeft;
    return x
  }
  function offsetTop(el)
  {
    y = el.offsetTop
    for (e = el.offsetParent; e; e = e.offsetParent)
      y += e.offsetTop;
    return y
  }
  function startWord(ih, i)
  {
    for(tag = false; i < ih.length; i++)
    {
      c = ih.charAt(i)
      if(c == '<')
        tag = true
      if(!tag)
        return i
      if(c == '>')
        tag = false
    }
    return -1
  }
  function endWord(ih, i)
  {
    nonSpace = false
    space = false
    while(i < ih.length)
    {
      c = ih.charAt(i)
      if(c != ' ')
        nonSpace = true
      if(nonSpace && c == ' ')
        space = true
      if(c == '<')
        return i
      if(space && c != ' ')
        return i
      i++
    }
    return -1
  }
  function outWord(ih, i1, i2, dyn, anim)
  {
    if(dyn)
      outString += "<SPAN " + dynamicanimAttr + "=\"" + anim + "\" style=\"position: relative; left: 10000;\">"
    outString += ih.substring(i1, i2)
    if(dyn)
      outString += "</SPAN>"
  }
  function animate()
  {
    el = animateElements[currentElement]
    animation = el.getAttribute(dynamicanimAttr, false)
    step++
    if(animation == "spiral")
    {
      steps = stepsSpiral
      v = step/steps
      rf = 1.0 - v
      t = v * 2.0*Math.PI
      rx = Math.max(Math.abs(el.initLeft), 200)
      ry = Math.max(Math.abs(el.initTop),  200)
      el.style.posLeft = Math.ceil(-rf*Math.cos(t)*rx)
      el.style.posTop  = Math.ceil(-rf*Math.sin(t)*ry)
    }
    else if(animation == "zoomIn")
    {
      steps = stepsZoom
      el.style.fontSize = Math.ceil(50+50*step/steps) + "%"
      el.style.posLeft = 0
    }
    else if(animation == "zoomOut")
    {
      steps = stepsZoom
      el.style.fontSize = Math.ceil(100+200*(steps-step)/steps) + "%"
      el.style.posLeft = 0
    }
    else
    {
      steps = stepsFly
      if(animation == "dropWord" || animation == "flyTopRightWord" || animation == "flyBottomRightWord")
        steps = stepsWord
      dl = el.initLeft / steps
      dt = el.initTop  / steps
      el.style.posLeft = el.style.posLeft - dl
      el.style.posTop = el.style.posTop - dt
    }
    if (step >= steps)
    {
      el.style.posLeft = 0
      el.style.posTop = 0
      currentElement++
      step = 0
    }
    if(currentElement < animateElements.length)
      window.setTimeout("animate();", speed)
  }
//--></script>
</HEAD>
<BODY TEXT="#ff0000" LINK="#0000ff" VLINK="#800080" BGCOLOR="#c0c0c0" bgproperties="fixed" onload="dynAnimation()">
<span id="ani1" dynamicanimation="zoomOut">
<P><FONT FACE="Arial" SIZE=5><STRONG>ADVARSEL!
</FONT></STRONG><P ALIGN="CENTER">&nbsp;</P>
<FONT FACE="Arial" SIZE=4><STRONG><P ALIGN="CENTER">F&Oslash;R DER UDF&Oslash;RES ARBEJDE P&Aring; SYSTEMET,</P>
<P ALIGN="CENTER">SKAL FORBINDELSEN TIL BATTERIET AFBRYDES I MINDST 10 MINUTTER</P>
</FONT></STRONG><P ALIGN="CENTER">&nbsp;</P>
<FONT FACE="Arial" SIZE=4><STRONG><P ALIGN="CENTER">N&Aring;R AIRBAG'EN HAR V&AElig;RET UDL&Oslash;ST, </P>
<P ALIGN="CENTER">SKAL STYREENHEDEN OG LEDNINGERNE UDSKIFTES</P></FONT></STRONG>
</span>
</BODY>
</HTML>
Avatar billede trust1 Nybegynder
26. juni 2003 - 22:02 #4
Det ser ud til at det virker :-) Du for svar i morgen, da jeg lige skal prøve det på vores test udstyr, men takker mange gange.
Avatar billede trust1 Nybegynder
27. juni 2003 - 16:53 #5
Ja jeg kan kun sige tak!!! :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester