Shan: Autom. Refresh auf fremde URL (sekündl. Aktualisierung)

Ich suche eine Möglichkeit eine fremde URL zu refreshen - und zwar auomat. alle 20 Sekunden.

Ich habe versucht (im Head):

<script language="JavaScript">
function neu() {
   location.href = "http:www.test.de/irgendwas.html";
   setTimeout("neu()", 20000);
}
</script>

Ergebnis: Die Weiterleitung nach 20 Sekunden funktioniert.... ABER...*g*.... dabei bleibt es dann auch, d.h. es erfolgt kein weiterer Reload nach weiteren 20 Sekunden.

Ich bin sicher, die Lösung ist einfach, aber ich kenne sie eben nicht...:-(

  1. Hi,

    naja, auf der dann angezeigten fremden Seite ist Dein js auch nicht vorhanden :o).
    Bau einfach ein frameset auf, das die entsprechende Seite lädt. Dieses frameset kannst Du dann reloaden, mit nem meta-tag oder javascript oder wie Du willst...

    Gruß
    Martin

    1. Hi,

      naja, auf der dann angezeigten fremden Seite ist Dein js auch nicht vorhanden :o).
      Bau einfach ein frameset auf, das die entsprechende Seite lädt. Dieses frameset kannst Du dann reloaden, mit nem meta-tag oder javascript oder wie Du willst...

      Gruß
      Martin

      Hi Martin!

      Danke... war sehr dumm von mir, daran nicht zu denken...*schäm*. Aber es funktioniert trotzdem nicht...:-(

      Das von mir upgeloadete Frame-File reloadet nicht. Es ist wie folgt aufgebaut:

      <frameset ROWS="132,*" FRAMEBORDER="0" FRAMESPACING="0" BORDER="0"
        BORDERCOLOR="#000000">
      <frameset COLS="170,555,*">
      <frame SRC="logolinks.htm" NAME="left" MARGINWIDTH="3" MARGINHEIGHT="3"
        SCROLLING="NO" NORESIZE="NORESIZE">
      <frame SRC="banner.htm" NAME="titel" MARGINHEIGHT="0" TOPMARGIN="0" SCROLLING="NO" NORESIZE="NORESIZE">
      <frame SRC="logorechts.htm" NAME="right" MARGINWIDTH="3" MARGINHEIGHT="3"
        SCROLLING="NO" NORESIZE="NORESIZE">
      </frameset>
      <frameset COLS="170,*">
      <frame SRC="leiste.htm" NAME="menu" MARGINWIDTH="3" MARGINHEIGHT="3"
        SCROLLING="NO" NORESIZE="NORESIZE">
      <frame SRC="http://www.test.de/test.html" NAME="main" SCROLLING="AUTO" NORESIZE="NORESIZE">
      </frameset>
      <noframes>
      <script language="JavaScript">
      function neu() {
         location.href = "http://www.test.de/test.html";
         setTimeout("neu()", 10000);
      }
      </script>
      </head>

      Das JS muß doch innerhalb des Heads stehen.... woran liegt es nur? Oder muß es zwangsläufig über die
      Frame-Angaben....?

      1. Hi nash,

        wenn Dein Provider SSI zuläßt:

        In den Frame, in dem die zu akualisierende Seite geladen werden soll, kommt die folgende Seite, benannt 'irgendwas.shtml':

        <html><head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
        <meta http-equiv="refresh" content="5; URL=irgendwas.shtml">
        <title>Neue Seite 2</title>
        </head>

        <body>
        <!--#include virtual="die_zu_aktualisierende_seite.htm"-->
        </body></html>

        Funktioniert prima
          Jens

        1. Wow, Jens!! Es reloadet.... bin somit einen entscheidenden Schritt weiter! Erst mal DANKE!!

          ABER...*gg*.....ich bekomme in dem reloadenden Fenster eine Fehlermeldung:

          [an error occurred while processing this directive]

          Mist... Ich will nicht hoffen, daß dies bedeutet, daß mein Hoster SSI nicht zuläßt. Bin Premium-Kunde
          bei Strato, darf also z.B. auch eigene CGIs einsetzen... Ich drücke mal die Daumen, daß ich einen anderen
          Fehler gemacht habe und kurz vor dem Ziel stehe...

          Kannste vielleicht mal einen Blick darauf werfen?

          Was mache ich nur, wenn meine Befürchtung zutrifft...*grübel*

          Viele Grüße

          Shan

          1. Hi!

            [an error occurred while processing this directive]

            Mist... Ich will nicht hoffen, daß dies bedeutet, daß mein Hoster SSI nicht zuläßt.

            Nein, das heisst, dass versucht wurde, die SSI auszufuehren, der SSI-Parser sich aber an irgendwas verschluckt hat. Mit anderen Worten, Du hast einen Fehler in Deiner SSI-Direktive. Vielleicht ist es einfach nur ein fehlendes Leerzeichen vor dem --> . Ansonsten muesste wir mal den Source sehen.

            Kannste vielleicht mal einen Blick darauf werfen?
            Das nuetzt uns da natuerlich nix, denn dort wurden die SSI ja schon ausgefuehrt. Wir brauchen den *originalen* Quelltext. Speicher die betreffende Datei mal als txt ab, dann koennen wir uns das ansehen.

            So long

            1. Hallo Calocybe!

              Danke! Okay... Hier kommen die Quellcodes.
              Habe beide Files trotzdem auch nochmal als txt-Files hochgeladen....(ssi-test.txt und irgendwas.txt)

              File Nr 1 (ssi-test.html):

              <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
              <html>
              <head>
                 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                 <meta name="robots" content="INDEX,FOLLOW">
                 <meta name="GENERATOR" content="Mozilla/4.6 [de] (Win95; I) [Netscape]">
                 <title>ssi-test</title>

              <frameset ROWS="132,*" FRAMEBORDER="0" FRAMESPACING="0" BORDER="0"
                BORDERCOLOR="#000000">
              <frameset COLS="170,555,*">
              <frame SRC="logolinks.htm" NAME="left" MARGINWIDTH="3" MARGINHEIGHT="3"
                SCROLLING="NO" NORESIZE="NORESIZE">
              <frame SRC="banner.htm" NAME="titel" MARGINHEIGHT="0" TOPMARGIN="0" SCROLLING="NO" NORESIZE="NORESIZE">
              <frame SRC="logorechts.htm" NAME="right" MARGINWIDTH="3" MARGINHEIGHT="3"
                SCROLLING="NO" NORESIZE="NORESIZE">
              </frameset>
              <frameset COLS="170,*">
              <frame SRC="galaxleiste.htm" NAME="menu" MARGINWIDTH="3" MARGINHEIGHT="3"
                SCROLLING="NO" NORESIZE="NORESIZE">
              <frame SRC="irgendwas.shtml" NAME="main" SCROLLING="AUTO" NORESIZE="NORESIZE">
              </frameset>
              <noframes>
              </head>
              <body>
              Ihr Browser kann keine Frames darstellen.
              </body>
              </noframes>
              </frameset>
              </html>

              File Nr. 2 (irgendwas.shtml):

              <html><head>
              <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
              <meta http-equiv="refresh" content="5; URL=irgendwas.shtml">
              <title>Neue Seite 2</title>
              </head>

              <body>
              <!--#include virtual="http://private.addcom.de/piep/family/family.html"-->
              </body></html>

              1. Ohne mir alles genau angeschaut und durchdacht zu haben, das Problem [an error occured while processing this directive] liegt hier:

                <body>
                <!--#include virtual="http://private.addcom.de/piep/family/family.html"-->
                </body></html>

                Erstens bitte vor dem --> ein Leerzeichen lassen, wie ich bereits sagte.
                Zweitens: Du kannst nur Dateien vom selben Rechner einbinden. Also nicht irgendwelche URLs, die irgendwo in die Welt zeigen, sondern nur sowas wie
                <!--#include virtual="/piep/family/family.html" -->
                wobei sich dieser Pfad natuerlich auf Deine eigene Domain bezieht.

                So long

                1. Ohne mir alles genau angeschaut und durchdacht zu haben, das Problem [an error occured while processing this directive] liegt hier:

                  <body>
                  <!--#include virtual="http://private.addcom.de/piep/family/family.html"-->
                  </body></html>

                  Erstens bitte vor dem --> ein Leerzeichen lassen, wie ich bereits sagte.
                  Zweitens: Du kannst nur Dateien vom selben Rechner einbinden. Also nicht irgendwelche URLs, die irgendwo in die Welt zeigen, sondern nur sowas wie
                  <!--#include virtual="/piep/family/family.html" -->
                  wobei sich dieser Pfad natuerlich auf Deine eigene Domain bezieht.

                  So long

                  Hmm.. also im Falle einer FREMDEN URL keine Chance eines autom Reloads??

      2. Hallo Shan,

        <noframes>

        ^^^^^^^^^^^^^^

        daran wird es wohl liegen :-), noframes kommt nicht zur Ausführung, denn dein Browser kann ja Frames.

        <script language="JavaScript">
        function neu() {
           location.href = "http://www.test.de/test.html";
           setTimeout("neu()", 10000);
        }
        </script>
        </head>

        Viele Grüße
        Antje

        1. Hi Antje!

          Nee, das hat damit garantiert nix zu tun, denn <no frames> gelangt nur zum Einsatz bei Browern, die keine Frames anzeigen,
          hier steht dann normalerweise eine Text - damit diese Nutzer überhaupt was sehen...:-) Eine Ersatzfunktion also, die
          nicht zwingend aufgerufen wird...

          Habe <no frames> schon lange im Einsatz auf einer anderen Website und es funkioniert tadellos. Der hier reinkopierte Frameset-Code
          ist also schon länger im Einsatz und ist schon okay so...

          Daran kann es also leider nicht liegen...

          1. Hallo Shan,

            Nee, das hat damit garantiert nix zu tun, denn <no frames> gelangt nur zum Einsatz bei Browern, die keine Frames anzeigen,
            hier steht dann normalerweise eine Text - damit diese Nutzer überhaupt was sehen...:-) Eine Ersatzfunktion also, die
            nicht zwingend aufgerufen wird...

            zumindest in deinem Quellcodeausschnitt steht das Script nach <noframes und kommt deshalb gar nicht zur Ausführung. Exakt das meinte ich.

            Viele Grüße
            Antje

            1. Hi Antje!

              Stimmt... habe es testweise an den Anfang kopiert, es funktioniert trotzdem nicht....:-(
              Es muß noch was anderes faul sein...

              1. Hallo Shan,

                Es muß noch was anderes faul sein...

                Natürlich ist da noch was anderes faul ;-)

                1. Überprüf doch noch mal die Anordnung bzw. Verschachtelung der Tags
                2. Eine Funktion hat die Eigenart aufgerufen werden zu müssen (schreibt man das so? ;-)
                2. Solltest Du schauen, welche location geändert wird
                Entsprechende Infos findest Du wie immer unter <../../>

                Ich hoffe das hilft Dir weiter :-)

                Gruß AlexBausW

                1. Hi Alex!

                  Hmm.. habe es mir angeschaut... Demnach wäre ja fast alles falsch. Das kann aber nicht sein, dannn das Frameset
                  funktioniert, ich habe es an anderer Stelle im Einsatz.... Meinst Du wirklich, daß deswegen der Reload nicht funzt?

                  Die Idee von Jens (Thema SSI) hat mich ein ganzes Stück weitergebracht.... es reloadet. Aber ich bekomme eine Fehlermeldung,
                  warum auch immer....

                  1. Hallo Shan,

                    Hmm.. habe es mir angeschaut... Demnach wäre ja fast alles falsch. Das kann aber nicht sein, dannn das Frameset
                    funktioniert, ich habe es an anderer Stelle im Einsatz....

                    Verwende folgende DTD <../../tcab.htm#a2>

                    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
                          "http://www.w3.org/TR/html4/frameset.dtd">

                    oder etwas allgemeiner:

                    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                           "http://www.w3.org/TR/html4/loose.dtd">

                    Dann dürfte auch der Valligator nicht meckern

                    Meinst Du wirklich, daß deswegen der Reload nicht funzt?

                    Nein, er funktioniert nicht, weil Du die Funktion nicht aufrufst ;-)

                    Die Idee von Jens (Thema SSI) hat mich ein ganzes Stück weitergebracht.... es reloadet. Aber ich bekomme eine Fehlermeldung,
                    warum auch immer....

                    Wenn du versuchst eine Datei von einem fremden Server bzw. einer anderen Domain zu laden, wirst Du auch keinen Erfolg damit haben, sonder doch die Frams-Javascript-Version verwenden müssen :-)
                    (Ich gehe davon aus, daß die Seite die Du reloadest ebenfalls von Dir ist !!! Die Problematik wurde ja schon angesprochen)

                    Gruß AlexBausW

    2. hi alle,

      um alles noch zu zerstreuen:
      so koennte das mit dem frame in etwa aussehen (habs jetzt nur so schnell notiert und nciht nochmal ueberprueft - also wenn was nciht hinhaut, verbessere es):

      <html>
      <head>
      <script>
      function reload(){window.parent.frame1.location.href="name.htm"; setTimeout(3000,reload());
      return}
      </script>
      </head>
      <frameset>
      <frame name="frame1" src="http://www.tralala.de">
      </frameset>
      </html>

      ich glaub, dsa geht auch wenn du dem frame eine id gibst und dann statt window.parent... einfach document.all.frameid.src="name.htm" schreibst (ist aber nur im ie - wegen document.all)

      gruss,
      frank_eee

      PS: ich hoffe hiermit nochmehr wirrwar gestiftet zu haben ;-)

  2. Hallo Shan,

    sie kann ja nicht funktionieren, da nach dem Refresh ja die neue Seite anliegt, und diese hat ja Dein Script nicht.

    Versuche das Problem durch Frames oder ServerSideInclude zu lösen.

    Jens

    1. Hallo Shan,

      sie kann ja nicht funktionieren, da nach dem Refresh ja die neue Seite anliegt, und diese hat ja Dein Script nicht.

      Versuche das Problem durch Frames oder ServerSideInclude zu lösen.

      Jens

      Yo... Danke. Daran habe ich nicht gedacht. :-)) Mit Frames klappt es aber auch nicht.... siehe meine Antwort auf Martin.

  3. hi!
    ist das deine seite die du einbauen willst oder ne fremdseite?
    bei ner fremdseite wuerde ich mich mal mit dem zustaendigen webmaster in verbindung setzten ob der das denn ueberhaupt will, so ne autoreload kann ne maenge traffic machen und wenn die nach traffic abrechnen, naja..... dann gibts noch den artickel "unfairer schaufenstereffekt" in selfhtml.
    es gibt auch nen menge server die solche funktionen  nicht erlauben :-), wenn die site auf so nem server liegt kannst du keinen reload machen, der aufruf wird eben nur hoechstens einmal erlaubt.
    schoenen gruss
    this -> *;_;* walker