Variablen + Frames
Dino Müller
- javascript
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.
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
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.
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
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.