Setzen der href des aktuellen Dokumentes

  • Hallo,
    ich möchte mit document.location.href die href des aktuellen documents neu setzen, indem ich den document.location.pathname verwende und diesen um einen substring (search) erweitere. Dieser wird später über die search funktion wieder abgerufen. Das ganze funktioniert wenn es über das lokale Dateisystem (also mit Laufwerksbuchstaben) gemacht wird oder über http. Es funktioniert aber nicht, wenn die Dateien auf einer Networkresource liegen und mittels unc referenziert werden. Hab im Moment keine Idee, wie ich das fixen soll bzw. was die Ursache für das unterschiedliche Verhalten sein könnte.
    Vielen Dank schon mal für die Hilfe.

    VG,
    Hans Meidinger

  • Mittlerweile hab' ich herausgefunden, dass es nicht am Setzen des HREF liegt, sondern welcher Inhalt über die funktion search geliefert wird.
    Der javaScript-code zum setzen von search lautet so (Inhalt eines entryforms keyword):

    string = document.location.pathname + "?" + escape(document.entryform.keyword.value);
    document.location.href = string;

    Fx liefert in der variablen string folgende Werte:
    lokal: /Y:/dir/20090302.001/index_files/nav.html?System
    vom Netz: ///Server/netname/dir/20090302.001/index_files/nav.html?System

    Wenn man das später über location.search wieder abruft kommt das dabei heraus:
    lokal: ?System
    vom Netz: ?keyword=System

    Warum sich Fx in den beiden Fällen so unterschiedlich verhält, hab' ich leider keine Ahnung.

  • Was passiert, wenn du statt

    Code
    string = document.location.pathname + "?" + escape(document.entryform.keyword.value);


    einfach einen Parameternamen vergibst

    Code
    string = document.location.pathname + "?paramname=" + escape(document.entryform.keyword.value);
  • Danke für den Tipp.
    Auch wenn ich einen Parameternamen vergebe, verhalten sich die Browser gleich unterschiedlich, so dass mir wohl nichts anderes übrig bleibt, als den string zu parsen und unerwünschte Sequenzen zu entfernen.
    Ich kämpfe noch mit einem weiteren Problem: wenn die Dateien auf einer Netzwerkresource liegen (UNC-Name), dann fügt Fx zwischen durch Leerzeichen getrennten Wörtern ein + ein (Bsp "ein Wort" wird zu "ein+Wort".
    Verwendeter Scriptcode: unescape(location.search.substring(1,location.search.length))
    Hast du dafür eine Erklärung?

    VG,
    Hans