Jeena Paradies: JS-Funktion aus einer externen Datei

Diese zwei Dateien, und die Bilder sind im gleichen Verzeichniss:

bilder.js
--------------------------------------------------
function Vlona() {
  var j,l="",m="",p="",q="",z="",list= new Array()
  list[list.length]='vlona01.jpg';
  list[list.length]='vlona02.jpg';
  list[list.length]='vlona03.jpg';
  list[list.length]='vlona04.jpg';

j=parseInt(Math.random()*list.length);
  j=(isNaN(j))?0:j;
  if (list[j].indexOf('?')==-1) {
    document.write("<img src='"+list[j]+"'>");
  }
  else {
    nvp=list[j].substring(list[j].indexOf('?')+2).split('&');
    for(var i=0;i<nvp.length;i++) {
      sub=nvp[i].split('=');
      switch(sub[0]) {
      case 'link':
          l="<a href='"+unescape(sub[1])+"'>";
          p="</a>";
    break;
     case 'target':
          q=" target='"+unescape(sub[1])+"'";
      break;
       default:
          m+=" "+sub[0]+"='"+unescape(sub[1])+"'";
      break;
      }
    }
    z=(l!="")?((q!="")?l.substring(0,l.length-1)+q+">":l):"";
    z+="<img src='"+list[j].substring(0,list[j].indexOf('?'))+"'"+m+">"+p;
  document.write(z);
  }
  }

index.htm
-----------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Koorbash</title>
<script type="text/javascript" src="bilder.js"></script>
</head>
<body text="#fff4ca" bgcolor="#4b2d22">
  <table align="center" style="height:100%; background-image:url(seite.png); background-repeat:repeat-y; padding:0" cellpadding="0" cellspacing="0" border=0>
   <colgroup>
    <col width="140">
    <col width="610">
    <col width="6">
   </colgroup>
   <tr style="height:169px" valign="top">
    <td><img src="back.png" border="0" alt=""></td>
    <td style="background-image:url(back-top.jpg); background-repeat:repeat-x; padding-left:10px; padding-top:10px;">

<script type="text/javascript">
 <!--
  Vlona();
 //-->
</script>

<table width="100%" style="padding-top:0px"  border=0><tr><td>
   <a href="news.htm"><img src="menue/news.png" border="0" alt=""></a></td><td>
   <a href="band.htm"><img src="menue/band.png" border="0" alt=""></a></td><td>
   <a href="multimedia.htm"><img src="menue/multimedia.png" border="0" alt=""></a></td><td>
   <a href="vlonaslog.htm"><img src="menue/vlonaslog.png" border="0" alt=""></a></td><td>
   <a href="tour.htm"><img src="menue/tour.png" border="0" alt=""></a></td><td>
   <a href="merchandise.htm"><img src="menue/merchandise.png" border="0" alt=""></a></td><td>
    <a href="write.htm"><img src="menue/write.png" border="0" alt=""></a></td><td>
   <a href="links.htm"><img src="menue/links.png" border="0" alt=""></a>
  </td><td>
  </table>
    </td>
    <td><img src="top-li.png" border="0" alt=""></td>
   </tr>
   <tr valign="center" align="right">
    <td></td>
    <td>

</td>
   </tr><tr style="height:30px" valign="bottom"><td><img src="back-unt.png" border="0" alt=""></td><td><img src="hell.png" width="610" height="14" border="0"></td>
    <td><img src="top-li-unt.png" border="0" alt=""></td></tr>
  </table>
</body>
</html>

---------------------------------------------

So wie es da oben ist funktioniert es nicht, was hab ich da falsch gemacht? Könnte sich das jemand kurz durchgucken? Das was nicht geht ist, dass das Bild nicht angezeigt wird.

  1. Nachtrag, also das Bild das die Javascript funktion anzeigen soll geht nicht.

    1. Hi,

      Nachtrag, also das Bild das die Javascript funktion anzeigen soll geht nicht.

      "geht nicht" geht nicht. Das Bild geht nicht, oder zeigt das Bild kein javascript an? *verwirrt* Diese Fehlerbeschreibung ist nicht sonderlich hilfreich.

      Versuche mal folgendes:

      if (list[j].indexOf('?')==-1) {
          pic="<img src='"+list[j]+"'>";
          alert(pic);
          document.write(pic);
          }

      Das sollte ein <img src='vlona0n.jpg'> geben. In dem js kann ich keinen Fehler entdecken.

      Grüße,

      Maxx

      --
      Rechtschreibfehler und grammatikalisch wirre Konstruktionen
      sind beabsichtigt und dienen der allgemeinen Belustigung.
      1. "geht nicht" geht nicht. Das Bild geht nicht, oder zeigt das Bild kein javascript an? *verwirrt* Diese Fehlerbeschreibung ist nicht sonderlich hilfreich.

        Also das bild wird nicht angezeigt.

        1. "geht nicht" geht nicht. Das Bild geht nicht, oder zeigt das Bild kein javascript an? *verwirrt* Diese Fehlerbeschreibung ist nicht sonderlich hilfreich.

          Also das bild wird nicht angezeigt.

          ich hab dir bereits einen Link gesagt wo du mal nachgucken kannst, wie du die Fehlermeldung in deinem Browser herausfinden kannst.
          Wenn wirklich nur das bild nicht angezeigt wird, würde ich an deiner Stelle mal statt den HTML Code direkt in eine Seite zu schreiben in einer Variabel sammeln und dann mit alert ausgeben, damit du siehst ob das überhaupt ankommt was du willst.

          Struppi.

          1. ich hab dir bereits einen Link gesagt wo du mal nachgucken kannst, wie du die Fehlermeldung in deinem Browser herausfinden kannst.

            sorry hab ich vorher nicht gesehen

            Wenn wirklich nur das bild nicht angezeigt wird, würde ich an deiner Stelle mal statt den HTML Code direkt in eine Seite zu schreiben in einer Variabel sammeln und dann mit alert ausgeben, damit du siehst ob das überhaupt ankommt was du willst.

            Weiter oben steht der Quelltext mit dem es in einer HTML Datei geht. Es geht erst nicht mehr, seit dem ich es ausgelagert habe.

          2. file://localhost/home/jeena/Webs/koorbash/index2.htm
            Unknown context
            Syntax error while loading (line 3)
              vlona()
            --------^

            Das gibt die JavaScript-Konsole von opera aus.

            1. file://localhost/home/jeena/Webs/koorbash/index2.htm
              Unknown context
              Syntax error while loading (line 3)
                vlona()
              --------^

              Das gibt die JavaScript-Konsole von opera aus.

              NAja, jetzt schau mal wie du die Funktion hier nennst und dann wie in der bild.js Datei?
              Ein Tipp, JS ist case sensitive.

              Struppi.

              1. file://localhost/home/jeena/Webs/koorbash/index2.htm
                Unknown context
                Syntax error while loading (line 3)
                  vlona()
                --------^

                Es ist übrigens nervig auf solche Fragen zu antworten, wo der Frager immer was anderes macht als er in hier dann postet, weil weiter unten in deinem zweiten Thread steht Vlona() und damit müßte es eigentlich funktionieren

                Struppi.

                1. Es ist übrigens nervig auf solche Fragen zu antworten, wo der Frager immer was anderes macht als er in hier dann postet, weil weiter unten in deinem zweiten Thread steht Vlona() und damit müßte es eigentlich funktionieren

                  ich habe es vorcher zu testzwecken überall geändert, sorry.

                  Also folgendes:

                  Konqueror 1.3.1: Bild wird nicht angezeigt
                  Opera 7.11: Bild wird nicht angezeigt
                  Netscape 4.77: Bild wird nicht angezeigt
                  Firebird: Bild wird angezeigt
                  Mozilla: Bild wird angezeigt

                  Hab jetzt gerade eben Mozilla nachinstalliert, um zu gucken, ob es da funktioniert.

                  Ich probiere es auch gleich online.

                  Sorry für die unannehmlichkeiten.

                  Jeena Paradies

                  1. Es ist übrigens nervig auf solche Fragen zu antworten, wo der Frager immer was anderes macht als er in hier dann postet, weil weiter unten in deinem zweiten Thread steht Vlona() und damit müßte es eigentlich funktionieren

                    ich habe es vorcher zu testzwecken überall geändert, sorry.

                    Ich hab deinen Quelltext kopiert, bei mir wird das Bild auch nicht angezeigt da ich es nicht habe, aber der Code läuft ohne Probleme.

                    Hast du mal meinen anderen Ratschlag probiert und dir den HTML Code ausgeben lassen? wenn du sonst keine Fehlermeldung erhälst kann es auch an kaputten HTML Code liegen.

                    Struppi.

                    1. Hast du mal meinen anderen Ratschlag probiert und dir den HTML Code ausgeben lassen? wenn du sonst keine Fehlermeldung erhälst kann es auch an kaputten HTML Code liegen.

                      Irgendwie verstehe ich überhaupt nicht was du damit meinst.

                      1. Hast du mal meinen anderen Ratschlag probiert und dir den HTML Code ausgeben lassen? wenn du sonst keine Fehlermeldung erhälst kann es auch an kaputten HTML Code liegen.

                        Irgendwie verstehe ich überhaupt nicht was du damit meinst.

                        Du hast hier:
                        if (list[j].indexOf('?')==-1) {
                            document.write("<img src='"+list[j]+"'>");
                          }
                          else {
                            nvp=list[j].substring(list[j].indexOf('?')+2).split('&');
                            for(var i=0;i<nvp.length;i++) {
                              sub=nvp[i].split('=');
                              switch(sub[0]) {
                              case 'link':
                                  l="<a href='"+unescape(sub[1])+"'>";
                                  p="</a>";
                            break;
                             case 'target':
                                  q=" target='"+unescape(sub[1])+"'";
                              break;
                               default:
                                  m+=" "+sub[0]+"='"+unescape(sub[1])+"'";
                              break;
                              }
                            }
                            z=(l!="")?((q!="")?l.substring(0,l.length-1)+q+">":l):"";
                            z+="<img src='"+list[j].substring(0,list[j].indexOf('?'))+"'"+m+">"+p;
                          document.write(z);
                          }

                        doch mehrere Aufrufe von document.write(....) und was in der Klammer steht guckst du dir an mit alert(z) z.b. einfach um zu sehen ob das überhaupt das ist was du erwartest.

                        Struppi.

                        1. Guten Morgen, ein neuer Tag beginnt, mal sehen wie dieser wird.

                          Ja ich habe es auch so ausprobiert, und da kam ja dieses alert Fensterchen und drin stand

                          <img src="vlona01.jpg">

                          Also gibt er das ja richtig aus. Ich hab es jetzt auch mit dem IE ausprobiert, und da geht es auch. Es bleiben also noch Opera, Konqueror, Netscape 4.7

                          Irgendwie muss es ja gehen, aber wenigstens geht es ja bei den meistverbreiteten Browsern schon mal. Ich mach mich auf die Suche...

                          Jeena Paradies

                          1. Hallo,

                            Ich habe jetzt mal eine Testseite gemacht mit:

                            -------------------------------------------
                            <html>
                            <head>
                            <script language="JavaScript" type="text/javascript" src="bilder2.js"></script>
                            </head>
                            <body>
                            <script language="JavaScript" type="text/javascript">
                             <!--
                              vlona();
                             //-->
                            </script>
                            </body>
                            </html>
                            ------------------------------------------
                            Und hier hat alles wunderbar funktioniert. Dann habe ich

                            <script language="JavaScript" type="text/javascript">
                             <!--
                              vlona();
                             //-->
                            </script>

                            mit cut&paste das in meine index.htm reinkopiert und siehe da es klappt!!! Juchuuuuuu dankeschön an alle die mir geholfen haben!!!!

                            Kann ich eigentlich mehrere funktionen in die bilder.js einfügen? wie trenne ich die?

                            Jeena Paradies

                            1. mit cut&paste das in meine index.htm reinkopiert und siehe da es klappt!!! Juchuuuuuu dankeschön an alle die mir geholfen haben!!!!

                              puuuh, da bin ich aber froh ;-)

                              Kann ich eigentlich mehrere funktionen in die bilder.js einfügen? wie trenne ich die?

                              klar, einfach:

                              function FunktionsName1 (params)
                              {
                                  ... Funktionsblock
                              }

                              function FunktionsName2 (params)
                              {
                                  ... Funktionsblock
                              }

                              Struppi.

                              1. Super Dankeschön. Ich denke jetzt komme ich erst einmal eine Weile alleine zurecht.

                                Jeena Paradies

            2. Hallo,

              file://localhost/home/jeena/Webs/koorbash/index2.htm
              Unknown context
              Syntax error while loading (line 3)
                vlona()
              --------^

              Das gibt die JavaScript-Konsole von opera aus.

              ich habe im Moment leider keinen Opera zur Hand. Aber irgendwie kommt mir das bekannt vor ... Hast du einen anderen Browser zum testen? Netscape, Mozilla? Oder teste es einmal online. Ich glaube mich erinnern zu können das Opera mit lokal ausgeführten js gelegentlich Probleme hat.

              HTH

              Maxx

  2. So wie es unten Steht funktioniert alles wunderbar, nur wenn ich es in eine externe Datei reintue dann gehts nicht mehr.

    index.htm
    --------------------------------------------------
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>Koorbash</title>
    </head>
    <body text="#fff4ca" bgcolor="#4b2d22">
      <table align="center" style="height:100%; background-image:url(seite.png); background-repeat:repeat-y; padding:0" cellpadding="0" cellspacing="0" border=0>
       <colgroup>
        <col width="140">
        <col width="606">
        <col width="6">
       </colgroup>
       <tr style="height:169px" valign="top">
        <td><img src="back.png" border="0" alt=""></td>
        <td style="background-image:url(back-top.jpg); background-repeat:repeat-x; padding-left:10px; padding-top:10px;">
        <script language="JavaScript">
      var j,l="",m="",p="",q="",z="",list= new Array()
      list[list.length]='vlona01.jpg';
      list[list.length]='vlona02.jpg';
      list[list.length]='vlona03.jpg';
      list[list.length]='vlona04.jpg';

    j=parseInt(Math.random()*list.length);
      j=(isNaN(j))?0:j;
      if (list[j].indexOf('?')==-1) {
        document.write("<img src='"+list[j]+"'>");
      }
      else {
        nvp=list[j].substring(list[j].indexOf('?')+2).split('&');
        for(var i=0;i<nvp.length;i++) {
          sub=nvp[i].split('=');
          switch(sub[0]) {
          case 'link':
              l="<a href='"+unescape(sub[1])+"'>";
              p="</a>";
        break;
         case 'target':
              q=" target='"+unescape(sub[1])+"'";
          break;
           default:
              m+=" "+sub[0]+"='"+unescape(sub[1])+"'";
          break;
          }
        }
        z=(l!="")?((q!="")?l.substring(0,l.length-1)+q+">":l):"";
        z+="<img src='"+list[j].substring(0,list[j].indexOf('?'))+"'"+m+">"+p;
      document.write(z);
      }
    </script>
      <table width="100%" style="padding-top:0px"  border=0><tr><td>
       <a href="news.htm"><img src="menue/news.png" border="0" alt=""></a></td><td>
       <a href="band.htm"><img src="menue/band.png" border="0" alt=""></a></td><td>
       <a href="multimedia.htm"><img src="menue/multimedia.png" border="0" alt=""></a></td><td>
       <a href="vlonaslog.htm"><img src="menue/vlonaslog.png" border="0" alt=""></a></td><td>
       <a href="tour.htm"><img src="menue/tour.png" border="0" alt=""></a></td><td>
       <a href="merchandise.htm"><img src="menue/merchandise.png" border="0" alt=""></a></td><td>
        <a href="write.htm"><img src="menue/write.png" border="0" alt=""></a></td><td>
       <a href="links.htm"><img src="menue/links.png" border="0" alt=""></a>
      </td><td>
      </table>
        </td>
        <td><img src="top-li.png" border="0" alt=""></td>
       </tr>
       <tr valign="center" align="right">
        <td></td>
        <td>

    </td>
       </tr><tr style="height:31px" valign="bottom"><td><img src="back-unt.png" border="0" alt=""></td><td><img src="hell.png" width="610" height="14" border="0"></td>
        <td><img src="top-li-unt.png" border="0" alt=""></td></tr>
      </table>
    </body>
    </html>