Ben: Kann ausgelagertes JavaScript nicht aufrufen

Hallo und guten Abend.
Ich habe folgendes Problem:
Javascript (Slideshow in meine Webseite eingebunden. Hat alles funktioniert. Jetzt habe ich das Script ausgelagert. Leider kann ich jetzt nicht mehr drauf zu greifen weder mit Firefox noch IE.

Javascript:

<script language="JavaScript1.2">

var scrollerwidth='80px'
var scrollerheight='15px'
var pausebetweenimages=2000

var slideimages=new Array()
slideimages[0]='<a href="http://www.ranking-hits.de/" title="Suchmaschinenoptimierung" target="_blank"><img src="<a href="http://www.ranking-hits.de/" title="Internet Marketing" target="_blank"><img src="http://www.ranking-hits.de/?ref=www.linkagent.eu&amp;style=40" border="0" alt="Ranking-Hits" /></a>'
slideimages[1]='<a href="http://www.ranking-charts.de" target="_blank" title="Mehr Pagerank"><img src="http://www.ranking-charts.de/pr.php?ani=1&n=801774a6" border="0" alt=""></a>'
//extend this list

///////Do not edit pass this line///////////////////////

var ie=document.all
var dom=document.getElementById

if (slideimages.length>2)
i=2
else
i=0

function move1(whichlayer){
tlayer=eval(whichlayer)
if (tlayer.top>0&&tlayer.top<=5){
tlayer.top=0
setTimeout("move1(tlayer)",pausebetweenimages)
setTimeout("move2(document.main.document.second)",pausebetweenimages)
return
}
if (tlayer.top>=tlayer.document.height*-1){
tlayer.top-=5
setTimeout("move1(tlayer)",50)
}
else{
tlayer.top=parseInt(scrollerheight)
tlayer.document.write(slideimages[i])
tlayer.document.close()
if (i==slideimages.length-1)
i=0
else
i++
}
}

function move2(whichlayer){
tlayer2=eval(whichlayer)
if (tlayer2.top>0&&tlayer2.top<=5){
tlayer2.top=0
setTimeout("move2(tlayer2)",pausebetweenimages)
setTimeout("move1(document.main.document.first)",pausebetweenimages)
return
}
if (tlayer2.top>=tlayer2.document.height*-1){
tlayer2.top-=5
setTimeout("move2(tlayer2)",50)
}
else{
tlayer2.top=parseInt(scrollerheight)
tlayer2.document.write(slideimages[i])
tlayer2.document.close()
if (i==slideimages.length-1)
i=0
else
i++
}
}

function move3(whichdiv){
tdiv=eval(whichdiv)
if (parseInt(tdiv.style.top)>0&&parseInt(tdiv.style.top)<=5){
tdiv.style.top=0+"px"
setTimeout("move3(tdiv)",pausebetweenimages)
setTimeout("move4(second2_obj)",pausebetweenimages)
return
}
if (parseInt(tdiv.style.top)>=tdiv.offsetHeight*-1){
tdiv.style.top=parseInt(tdiv.style.top)-5+"px"
setTimeout("move3(tdiv)",50)
}
else{
tdiv.style.top=scrollerheight
tdiv.innerHTML=slideimages[i]
if (i==slideimages.length-1)
i=0
else
i++
}
}

function move4(whichdiv){
tdiv2=eval(whichdiv)
if (parseInt(tdiv2.style.top)>0&&parseInt(tdiv2.style.top)<=5){
tdiv2.style.top=0+"px"
setTimeout("move4(tdiv2)",pausebetweenimages)
setTimeout("move3(first2_obj)",pausebetweenimages)
return
}
if (parseInt(tdiv2.style.top)>=tdiv2.offsetHeight*-1){
tdiv2.style.top=parseInt(tdiv2.style.top)-5+"px"
setTimeout("move4(second2_obj)",50)
}
else{
tdiv2.style.top=scrollerheight
tdiv2.innerHTML=slideimages[i]
if (i==slideimages.length-1)
i=0
else
i++
}
}

function startscroll(){
if (ie||dom){
first2_obj=ie? first2 : document.getElementById("first2")
second2_obj=ie? second2 : document.getElementById("second2")
move3(first2_obj)
second2_obj.style.top=scrollerheight
second2_obj.style.visibility='visible'
}
else if (document.layers){
document.main.visibility='show'
move1(document.main.document.first)
document.main.document.second.top=parseInt(scrollerheight)+5
document.main.document.second.visibility='show'
}
}

window.onload=startscroll

</script>

<ilayer id="main" width=&{scrollerwidth}; height=&{scrollerheight}; visibility=hide>
<layer id="first" left=0 top=1 width=&{scrollerwidth};>
<script language="JavaScript1.2">
if (document.layers)
document.write(slideimages[0])
</script>
</layer>
<layer id="second" left=0 top=0 width=&{scrollerwidth}; visibility=hide>
<script language="JavaScript1.2">
if (document.layers)
document.write(slideimages[dyndetermine=(slideimages.length==1)? 0 : 1])
</script>
</layer>
</ilayer>

<script language="JavaScript1.2">
if (ie||dom){
document.writeln('<div id="main2" style="position:relative;width:'+scrollerwidth+';height:'+scrollerheight+';overflow:hidden;">')
document.writeln('<div style="position:absolute;width:'+scrollerwidth+';height:'+scrollerheight+';clip:rect(0 '+scrollerwidth+' '+scrollerheight+' 0);left:0px;top:0px">')
document.writeln('<div id="first2" style="position:absolute;width:'+scrollerwidth+';left:0px;top:1px;">')
document.write(slideimages[0])
document.writeln('</div>')
document.writeln('<div id="second2" style="position:absolute;width:'+scrollerwidth+';left:0px;top:0px;visibility:hidden">')
document.write(slideimages[dyndetermine=(slideimages.length==1)? 0 : 1])
document.writeln('</div>')
document.writeln('</div>')
document.writeln('</div>')
}
</script>

Eingebunden im HTML:

<script type="text/javascript1.2" src="../scripte/Slideshow.js"></script>

Vielen Dank vorab...

Benjamin

  1. hallo Ben,

    Jetzt habe ich das Script ausgelagert.

    Das ist bei umfangreicheren Scripts ja immer zu empfehlen.

    Leider kann ich jetzt nicht mehr drauf zu greifen weder mit Firefox noch IE.

    Na gut, lassen wir den IE mal außen vor - aber im Firefox gibt es auf jeden Fall eine Fehlerkonsole, die du befragen solltest.

    Javascript:

    Upsa. Das ist bißchen sehr viel Zeugs, und für deine Frage vollkommen unwichtig. Aber wenn es denn nun einmal vorhanden ist schauen wir mal drauf:

    <script language="JavaScript1.2">

    Was soll denn das? Wie alt ist dein Script, und woher hast du es kopiert? Die "Version" ist doch völlig irrelevant. Wichtig wäre allerdings, daß du den "type" angibst.

    var ie=document.all
    var dom=document.getElementById

    Immer wieder durchgekaut: diese Differenzierung findet man vor allem eben in alten und sehr alten Scripts. Nach "document.all" zu fragen, ist nicht mehr sehr sinnvoll (es sei denn, man weiß, was damit beabsichtigt ist), nach "document.getElemetById" zu fragen ist nicht ganz so unsinnig.

    function move1(whichlayer){
    tlayer=eval(whichlayer)
    if (tlayer.top>0&&tlayer.top<=5){

    Öhm ... sowas kann man machen. eval ist allerdings ein bißchen heikel und an dieser Stelle möglicherweise nicht ganz angebracht. Zwei winzige Leerzeichen darin würden das Ganze aber wesentlich besser (menschen-)lesbar machen.

    <ilayer id="main" width=&{scrollerwidth}; height=&{scrollerheight}; visibility=hide>
    <layer id="first" left=0 top=1 width=&{scrollerwidth};>

    Bist du sicher, daß du sowohl ilayer wie auch layer unbedingt brauchst? Beides wird von den aktuellen Browsern nicht mehr verstanden, kann allerdings, wenn es denn unbedingt sein muß, in einer Abfrage von Bedingungen noch stehenbleiben. Wozu du das brauchst, kannst nur du selber dir erklären.

    <script language="JavaScript1.2">

    ...

    <script language="JavaScript1.2">

    Diese Angaben kommen zu häufig vor, die solltest du dringend revidieren.

    if (ie||dom){
    document.writeln('<div id="main2"

    Dir ist klar, was du hier machst? Immerhin bedeutet es, daß jemand, der Javascript nicht erlaubt oder die Sicherheitseinstellungen seines IE7 bereits korrekt zu manipulieren gelernt hat, dadurch überhaupt nichts in seinem Browser zu sehen bekommt?

    Eingebunden im HTML:
    <script type="text/javascript1.2" src="../scripte/Slideshow.js"></script>

    Diese zwei Zeilen sind die einzig wichtigen Zeilen, die mit deiner Anfrage zu tun haben. Auch hier wieder kannst du natürlich die "Version" weglassen, aber viel wichtiger ist, daß du überprüfst, ob denn der Pfad
      ../scripte/Slideshow.js
    korrekt ist. Leider hast du keine Adresse angegeben, auf der deine Beispielseite mit diesem ganze Scriptgedöns liegt, so daß man nicht prüfen kann, ob es nicht tatsächlich noch irgendein anderes Handicap gibt ...

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
  2. Hi,

    Hallo und guten Abend.
    Ich habe folgendes Problem:
    Javascript (Slideshow in meine Webseite eingebunden. Hat alles funktioniert. Jetzt habe ich das Script ausgelagert. Leider kann ich jetzt nicht mehr drauf zu greifen weder mit Firefox noch IE.

    Javascript:

    <script language="JavaScript1.2">

    [...]

    </script>

    HTML-Tags haben in einer Javascript-Resource nichts verloren.

    <ilayer id="main" width=&{scrollerwidth}; height=&{scrollerheight}; visibility=hide>
    <layer id="first" left=0 top=1 width=&{scrollerwidth};>

    Du willst tatsächlich den Netscape Uralt 4.x unterstützen?
    (auch diese Tags haben natürlich in einer Javascript-Resource nichts verloren.

    <script type="text/javascript1.2" src="../scripte/Slideshow.js"></script>

    im Type-Attribut hat die Versionsnummer nichts verloren.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.