Dino Müller: Variablen + Frames

Hallo,

ich habe folgendes Problem:
Ich möchte abfragen, ob ein Frame ein bestimmtes Dokument enthält.

if (parent.frame1.location.href == "../../interface/frame1.html")

kann ja nicht funktionieren, da ich anstatt ../../ den Pfad der aktuellen Datei
brauche. In welcher Variable ist der aktuell Pfad gespeichert?
'window.location.pathname' funktioniert leider nur online, offline
wird in der Variable der komplette Pfad mit Dateiname gespeichert. Den
brauche ich allerdings nicht. Ich brauche nur den aktuellen Pfad.
Auch muß ../../ durch den Pfad ersetzt werden.

Wenn ich z.B. ein neues Image-Objekt erstelle:

bild1 = new Image();
bild1.src = "../../graphics/bild1.gif";

dann enthält 'bild1.src' den kompletten Pfad OHNE '../../', also z.B.
http://www.domain.com/bild1.gif   bzw. offline z.B.
file://c/web/bild1.gif

Also, wie komme ich an den aktuellen Pfad ran und wie ersetzte ich ../../ durch
die Pfadnamen?

Oder gibts noch eine andere Möglichkeit, den Frame abzufragen?

MfG,
  Dino.

  1. ich habe folgendes Problem:
    Ich möchte abfragen, ob ein Frame ein bestimmtes Dokument enthält.

    So ganz steig ich da nicht durch was du nun genau
    willst , aber wenn dir der reine Name der HTML-Datei
    ohne Pfad reichen würde dann extrahiere doch den
    Namen aus dem location String.
    Das würde dann zumindest offline und Online klappen.

    s = window.location.href
    pagename=s.substr(s.lastIndexOf("/")+1,s.length-s.lastIndexOf("/")-1)
    alert(pagename);

    gruss
    Jens

    1. So ganz steig ich da nicht durch was du nun genau
      willst , aber wenn dir der reine Name der HTML-Datei
      ohne Pfad reichen würde dann extrahiere doch den
      Namen aus dem location String.

      Genau andersrum. Ich brauche den Pfad OHNE Dateinamen, also z.B
      http://www.domain.de/deutsch/test/

      Nur wenn ich das dann z.B. in der Variable Pfad gespeichert habe und
      pfad + "../../test.html"
      schreibe, bekomme ich ja als ergebnis "http://www.domain.de/deutsch/test/../../test.html"
      Ich will aber "http://www.domain.de/test.html" haben.

      Wie mache ich das ?

      MfG,
        Dino.

      1. Hi,

        Genau andersrum. Ich brauche den Pfad OHNE Dateinamen, also z.B
        http://www.domain.de/deutsch/test/

        Nur wenn ich das dann z.B. in der Variable Pfad gespeichert habe und
        pfad + "../../test.html"
        schreibe, bekomme ich ja als ergebnis "http://www.domain.de/deutsch/test/../../test.html"
        Ich will aber "http://www.domain.de/test.html" haben.

        Wie mache ich das ?

        entweder schreibst Du Dir selbst eine Routine. die für jedes "../" den letzten Pfad abschneidet (lastIndexOf und substring benutzen, beachte, daß der Pfad möglicherweise schon auf "/" endet), oder Du adressierst gleich alles relativ am Root, also statt "../../test.html" (welches dann beispielsweise http://www.domain.de/deutsch/test.html entspricht) schreibst Du "/deutsch/test.html". Das bringt Dir zwar im file-System Probleme, aber dagegen hilft die Installation eines Webservers und "localhost".

        Sorry, aber etwas leichteres fällt mir gerade auch nicht ein. parseUrl() scheint zumindest nicht zu existieren :-)

        Cheatah

        1. Ich hab's! :-)

          Und zwar habe ich das image-Objekt zweckentfremdet.
          Wie schon am Anfang des Threads gesagt, erzeugt ein image-Objekt
          den gewünschten Pfad.

          Wenn man z.B.

          topFrame = new Image();
          topFrame.src = "../top.html";

          eingibt und z.B. aus dem Pfad http://www.domain.de/deutsch/ aufruft,
          erhält man in der variable 'topFrame.src' den Wert:

          http://www.domain.de/top.html

          bzw. offline auch den richtigen lokalen Pfad.
          Also ich habe bis jetzt noch keine Probleme damit gehabt.
          Weiß jemand ob es damit Probleme geben kann?

          MfG,
            Dino.