Timo Steuerwald: URL verändern mittels Javascript

Hallo zusammen!

Erstmal: Tolle Seite & Tolles Forum hier! - Aber das wißt Ihr bestimmt schon ;-)

Jetzt zu meiner Frage: Ich möchte in einer Javascript-Funktion nachdem ich einen Confirm Dialog angezeigt habe abhängig von der Antwort auf eine andere Seite weiterleiten (bzw. mit anderen Parametern die derzeitige neu laden).
Dazu gibt es ja die Eigenschaft location.href, gut hab ich dann auch gleich verwendet, nur tuts nicht. Wenn ich die URL direkt in ein href einbau, dann paßt wunderbar, aber das will ich ja nicht.

Listing folgt:
***********Anfang***********
function fnOpenDeleteDialog(id, name){
    var message = "Login mit Namen " + name + " wirklich löschen?";
    var return_value = confirm(message);
    if ( return_value == true )
     {
     //Wenn alles geklappt hat, Seite mit entsprechenden Optionen neu laden
      window.location.href("./logins.php?action=delete&id=" + id);
        }
}
***********Ende***********

Ein nachfolgendes window.location.reload() lädt die gleiche Seite neu. Wenn ich nach dem window.locatwindow.location.href in einem Alert ausgebe, sehe ich auch das sich nix verändert hat (neue URL=alte URL).

Sorry, Leute habe wenig Ahnung von Javascript, aber irgendwas mach ich doch hier total falsch, oder?

Ciao,

Timo

  1. Hallo,

    |window.location.href("./logins.php?action=delete&id=" + id)

    hast dus mal mit window.location.href="./logins.php?action=delete&id=" + id; probiert?

    gruss

    --
    no strict;
    no warnings;
    Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
    1. Hallo,

      Hallo Eternius!

      |window.location.href("./logins.php?action=delete&id=" + id)

      hast dus mal mit window.location.href="./logins.php?action=delete&id=" + id; probiert?

      Ups, oh ja, das wollte ich uprsprünglich bereits letzte Woche ins Forum stellen, da is es mir noch der Fehler aufgefallen. Also ich habe den Fehler im Skript nichtmehr drin. Ich setze jetzt ganz gewöhnlich die Eigenschaft und zwar damits mehr auffällt so:

      ************snip**************
      var url = 'http://www.spiegel.de';
      alert(url);
      location.href = url;
      alert(location.href)
      ************snip**************

      location.href hat immer noch den alten Wert und spiegel.de wird nicht geladen, wieso eigentlich?

      • Danke schon mal für Eure Antworten!

      Ciao,

      Timo

      1. Hallo,

        ************snip**************
        var url = 'http://www.spiegel.de';
        alert(url);
        location.href = url;
        alert(location.href)
        ************snip**************

        location.href hat immer noch den alten Wert und spiegel.de wird nicht geladen, wieso eigentlich?

        nimm window.location.href ;-)
        auf welcher seite rufst du denn das skript auf?
        was wird also window.location.href sein?
        was würde passieren, wenn alert(window.location.href) in der www.spiegel.de seite aufgerufen würde?
        bei mir wird das sehr wohl geladen ;-?

        gruss

        --
        no strict;
        no warnings;
        Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
        1. nimm window.location.href ;-)

          Jo, okey ... nochmal ins Fettnäpfchen getreten.

          auf welcher seite rufst du denn das skript auf?
          was wird also window.location.href sein?

          Auf was willst Du hinaus? - Meinst Du window.location.href gibt solange den alten Wert aus bis die neue Seite fertig geladen wurde.

          was würde passieren, wenn alert(window.location.href) in der www.spiegel.de seite aufgerufen würde?
          bei mir wird das sehr wohl geladen ;-?

          Naja, bei mir immer noch nicht wirklich. Solange ich den letzten alert nicht bestätige, sagt IE's Statusanzeige "Seite http://www.spiegel.de wird geöffnet", das Windows-Logo oben rechts ist animiert und unten rechts gibts nen Progressbar dazu. Sieht also alles ganz gut aus, aber es geschieht im Fenster überhaupt nix. Sobald ich den Alert bestätige sagt IE "Fertig" und bleibt auf der alten Seite. Komisch, oder?

          Ciao,

          Timo

          1. Hallo,

            find ich nicht wirklich komisch, woher soll denn der js interpreter wissen dass nach der letzen alert anweisung nicht noch etwas kommt, bzw gelten die nach window.location.href stehenden anweisungen für die aktuelle seite.

            gruss

            --
            no strict;
            no warnings;
            Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
            1. find ich nicht wirklich komisch, woher soll denn der js interpreter wissen dass nach der letzen alert anweisung nicht noch etwas kommt, bzw gelten die nach window.location.href stehenden anweisungen für die aktuelle seite.

              Ja, ok. Das habe ich mir auch schon gedacht, aber da die API irgendwie nicht mehr her gibt, weiß ich halt nicht wie ich das ansonsten realisieren kann. Heißt das es geht so nicht, oder gibts in Javascript nicht irgendwas anderes mit dem ich ein forwarding auf ne neue URL realisieren kann?

              Ciao,

              Timo

              1. Hallo,

                ich hab schon mehrfach gelesen, dass das bei dir nicht funktioniert, welchen IE verwendest du denn? Kriegst du einen Fehler? Hast du es mal mit einem anderen Browser versucht?
                Hast du mal n update für den IE gemacht?

                ansonsten könntest du es mit einer form versuchen:

                <form name="bla" id="i_bla" method="post" action="">
                <input type="hidden" name="id" id="i_id" value="">
                <input type="hidden" name="action" id="i_action" value="">
                </form>

                <script>
                document.getElementById('i_id').value='diezulöschendeid';
                document.getElementById('i_action').value='deineaction';
                document.getElementById('i_bla').action='action.php';
                document.getElementById('i_bla').Submit();
                </script>

                gruss

                --
                no strict;
                no warnings;
                Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
                1. Hallo,

                  ich hab schon mehrfach gelesen, dass das bei dir nicht funktioniert, welchen IE verwendest du denn? Kriegst du einen Fehler? Hast du es mal mit einem anderen Browser versucht?

                  • IE Version 6.0.2800.1106
                  • Kein Fehler
                  • Kein anderer Browser, muß letztendlich eh unterm IE laufen (interne Lösung).

                  Hast du mal n update für den IE gemacht?

                  • Updates sind selber von windowsupdate.com wegen der rigiden Sicherheitsrichtlinie nicht möglich, wir bekommen aber alle wichtigen durch den automatischen Updateservice von Windows 2000 (das ist das Ding, das Dich allmorgendlich dazu zwingt erneut den Rechner neu zu starten)

                  ansonsten könntest du es mit einer form versuchen:

                  habs noch nicht ausprobiert, aber das sieht doch mal echt gut aus. Ich werds checken! Besten Dank schon mal!

                  Ciao,

                  Timo

                  1. Hi,

                    • Kein anderer Browser, muß letztendlich eh unterm IE laufen (interne Lösung).

                    abgesehen davon, dass dies eine immens wichtige Information ist, die bitte bereits im Ausgangsposting vermittelt wird: Andere Browser bieten oft deutlich bessere Möglichkeiten der Fehleranalyse und sollten daher bei Problemen unbedingt zu Rate gezogen werden.

                    Cheatah

                    --
                    X-Will-Answer-Email: No
                    X-Please-Search-Archive-First: Absolutely Yes
                    1. abgesehen davon, dass dies eine immens wichtige Information ist, die bitte bereits im Ausgangsposting vermittelt wird: Andere Browser bieten oft deutlich bessere Möglichkeiten der Fehleranalyse und sollten daher bei Problemen unbedingt zu Rate gezogen werden.

                      Ja, stimmt ihr habt ja recht. Es ist außerdem in unserem Haus kein anderer Browser *erlaubt*. Aber das wird sich jetzt ändern...

                      Ciao,

                      Timo

                  2. [...] Windows 2000 (das ist das Ding, das Dich allmorgendlich dazu zwingt erneut den Rechner neu zu starten)

                    Waaas? Win2k ist so ziemlich die einzige Windows-Version, bei der das *nicht* nötig ist. Win2k läuft bei mir schon fast 4 Wochen im Dauerbetrieb - bei ausgiebiger Nutzung der Maschine. Das habe ich noch bei keiner anderen Version erlebt; am ehesten könnte Win98 da noch herankommen (aber nicht die SE). Auf keinen Fall aber NT 4.0, da muss ich auch mindestens einmal im Lauf eines Arbeitstags die Kiste neu starten.

                    Mit fassungslosem Gruß,

                    Martin

                    --
                    Der Mensch denkt, Gott lenkt.
                    Der Mensch dachte, Gott lachte.
          2. Hi,

            nimm window.location.href ;-)
            Jo, okey ... nochmal ins Fettnäpfchen getreten.

            nicht wirklich. Solange Du kein this.location selbst definierst, ist location.href identisch mit window.location.href.

            auf welcher seite rufst du denn das skript auf?
            was wird also window.location.href sein?
            Auf was willst Du hinaus? - Meinst Du window.location.href gibt solange den alten Wert aus bis die neue Seite fertig geladen wurde.

            Ja. Und _nachdem_ die neue Seite da ist, ist das Script (und damit der alert()) längst abgebrochen. Je nach Browser ist dem bereits bei der Änderung des location.href so.

            Naja, bei mir immer noch nicht wirklich. Solange ich den letzten alert nicht bestätige, sagt IE's Statusanzeige "Seite http://www.spiegel.de wird geöffnet", das Windows-Logo oben rechts ist animiert und unten rechts gibts nen Progressbar dazu. Sieht also alles ganz gut aus, aber es geschieht im Fenster überhaupt nix.

            Dann machst Du vermutlich noch etwas anderes falsch. Ein Link zu einer Beispielseite wäre hilfreich.

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Dann machst Du vermutlich noch etwas anderes falsch. Ein Link zu einer Beispielseite wäre hilfreich.

              Ich mach kurz ein Beispiel fertig, auf die eigentliche Seite geht es leider nicht (nur intern).

              Ciao,

              Timo

            2. Hi,

              nimm window.location.href ;-)
              Jo, okey ... nochmal ins Fettnäpfchen getreten.

              nicht wirklich. Solange Du kein this.location selbst definierst, ist location.href identisch mit window.location.href.

              So habe ich das ursprünglich auch in Erinnerung, bin aber halt bei vielem ziemlich unsicher, bin eben neu bei javascript.

              Dann machst Du vermutlich noch etwas anderes falsch. Ein Link zu einer Beispielseite wäre hilfreich.

              Hier: http://www.yellowcomputing.de/test/test.4.html

              Danke schon mal!

              Ciao,

              Timo

              1. Hi,

                Hier: http://www.yellowcomputing.de/test/test.4.html

                </faq/#Q-19>

                Auszug aus Deinem Quelltext:

                var url = 'Neue URL ist http://www.spiegel.de';
                window.location.href = url;

                Dir ist nicht wirklich unklar, warum das nicht klappt, oder? ;-) Bei mir gibt das den erwarteten 404, bei anderen sicher eine IllegalUrlException (o.ä.). Ganz nebenbei hast Du die selbe Variable zweimal deklariert, was zu vermeiden wäre.

                Cheatah

                --
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
                1. </faq/#Q-19>

                  OK.

                  Auszug aus Deinem Quelltext:

                  var url = 'Neue URL ist http://www.spiegel.de';

                  Waaah!!! Was hab ich getan? OK, ich versuche den Kopf erst einzuschalten und dann anfangen zu schreiben! ;-)

                  window.location.href = url;

                  Dir ist nicht wirklich unklar, warum das nicht klappt, oder? ;-)

                  Ja, logo. Nochmal das ganze nun unter http://www.yellowcomputing.de/test/test4.html

                  Ganz nebenbei hast Du die selbe Variable zweimal deklariert, was zu vermeiden wäre.

                  Hmmh, die obere Zeile ist auskommentiert, also sollte das nix machen.

                  Ciao,

                  Timo

                  1. Hi,

                    Ja, logo. Nochmal das ganze nun unter http://www.yellowcomputing.de/test/test4.html

                    arbeitet bei mir einwandfrei.

                    Cheatah

                    --
                    X-Will-Answer-Email: No
                    X-Please-Search-Archive-First: Absolutely Yes
                    1. arbeitet bei mir einwandfrei.

                      Hmmh, ok jetzt die verlegene Frage: Welcher Browser? Welche Version? - Danke schon mal!

                      Ciao,

                      Timo

                      1. Hallo

                        du hast recht deine version funktioniert nicht mit dem IE,
                        das liegt IMHO daran:
                        |<a href="javascript:void(null)"
                        schreib das mal als:
                        <a href="#" onClick="javascript:fnOpenDeleteDialog()">Hier drauf klicken</a>

                        gruss

                        --
                        no strict;
                        no warnings;
                        Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
                        1. Hallo

                          du hast recht deine version funktioniert nicht mit dem IE,
                          das liegt IMHO daran:
                          |<a href="javascript:void(null)"
                          schreib das mal als:
                          <a href="#" onClick="javascript:fnOpenDeleteDialog()">Hier drauf klicken</a>

                          JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHHHHH!!!!! Supie! Das taugt was!

                          Die andere von Dir gepostete Version macht gerade eh noch ein paar Probs, also werd ich das hier nehmen. Kann mir aber gut vorstellen, das es mit dieser form als wrapper auch funktionieren würde.

                          BTW: Gibt es eigentlich so ne Art browserübergreifende API-Doc, die die gemeinsam unterstützten Features bzw. die Unterschiede der verschiedenen Funktionen und Eigenschaften bei javascript beschreibt? Oder is da selfHTML die beste Adresse? - Ich komm eigentlich aus der Programmierwelt und komm mir beim Javascript schreiben wie beim Lotteriespiel vor :-(

                          Ciao,

                          Timo

                          1. Hi,

                            <a href="#" onClick="javascript:fnOpenDeleteDialog()">Hier drauf klicken</a>
                            JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHHHHH!!!!! Supie! Das taugt was!

                            leider nicht, siehe mein anderes Posting.

                            BTW: Gibt es eigentlich so ne Art browserübergreifende API-Doc, die die gemeinsam unterstützten Features bzw. die Unterschiede der verschiedenen Funktionen und Eigenschaften bei javascript beschreibt? Oder is da selfHTML die beste Adresse?

                            Im großen und ganzen schon :-)

                            Ich komm eigentlich aus der Programmierwelt und komm mir beim Javascript schreiben wie beim Lotteriespiel vor :-(

                            Das spricht für Dich ...

                            Cheatah

                            --
                            X-Will-Answer-Email: No
                            X-Please-Search-Archive-First: Absolutely Yes
                            1. Uargh,

                              sorry, das* ist das schlimme an C&P, mir gings eigentlich eher darum**

                              <a href="#" onClick="javascript:fnOpenDeleteDialog()">Hier drauf

                              ^**         ^*
                              4 augen sehen besser als 2.

                              gruss

                              --
                              no strict;
                              no warnings;
                              Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
                              1. Uargh,

                                sorry, das* ist das schlimme an C&P, mir gings eigentlich eher darum**

                                Hi,

                                ich glaub ich habs verstanden. ;-)

                                Ciao,

                                Timo

                              2. Hi,

                                sorry, das* ist das schlimme an C&P, mir gings eigentlich eher darum**

                                mir ging es dann übrigens noch um die Rückgabe des Event-Handlers ...

                                4 augen sehen besser als 2.

                                Drum lege ich auch immer die Füße auf den Tisch, wegen der Hühneraugen ;-)

                                Cheatah

                                --
                                X-Will-Answer-Email: No
                                X-Please-Search-Archive-First: Absolutely Yes
                                1. Gude,

                                  Drum lege ich auch immer die Füße auf den Tisch, wegen der Hühneraugen ;-)

                                  Und es sollten immer mehrere Augenzeuge Augenblicklich Augen machen, wenn etwas Augenscheinlich Augenwischerei ist, damit andere Augenzeuge nicht das Augenscheinlich aus den Fingern GesAugte in sich aufsAugen

                                  bla

                                  --
                                  no strict;
                                  no warnings;
                                  Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
                      2. Hi,

                        arbeitet bei mir einwandfrei.
                        Hmmh, ok jetzt die verlegene Frage: Welcher Browser? Welche Version? - Danke schon mal!

                        Mozilla 1.5, IE 6.0. Ich sehe mir aber gerade den Code an: "javascript:" ist kein gültiger JavaScript-Befehl; dies und wie man JavaScript-Links richtig setzt, wurde im </archiv/> schon des öfteren hinterlegt.

                        Cheatah

                        --
                        X-Will-Answer-Email: No
                        X-Please-Search-Archive-First: Absolutely Yes
                        1. Hi,

                          arbeitet bei mir einwandfrei.
                          Hmmh, ok jetzt die verlegene Frage: Welcher Browser? Welche Version? - Danke schon mal!

                          Mozilla 1.5, IE 6.0. Ich sehe mir aber gerade den Code an: "javascript:" ist kein gültiger JavaScript-Befehl; dies und wie man JavaScript-Links richtig setzt, wurde im </archiv/> schon des öfteren hinterlegt.

                          Hmmh, also das funktioniert bei Dir mit IE 6.0??? - Ich ziehe somit meine gerade getätigte Behauptung zurück: beim Javascript schreiben komm ich mir inzwischen vor wie beim Lotteriespiel mit Supersechs und Spiel 77.

                          Was den gültigen Javascript Befehl betrifft: Ich schätze das hier der Methodennamen vollkommen genügt, ohne javascript: ...so klappts zumindest auch wunderbar.

                          Ciao,

                          Timo

                          1. Hi,

                            Hmmh, also das funktioniert bei Dir mit IE 6.0???

                            ja.

                            Ich ziehe somit meine gerade getätigte Behauptung zurück: beim Javascript schreiben komm ich mir inzwischen vor wie beim Lotteriespiel mit Supersechs und Spiel 77.

                            Sag nichts, ich hab neulich mit Spiel 77 satte 70 Euro gewonnen! ;-)

                            Was den gültigen Javascript Befehl betrifft: Ich schätze das hier der Methodennamen vollkommen genügt, ohne javascript: ...so klappts zumindest auch wunderbar.

                            Sagen wir es anders: Dass (bzw. _wenn_) es auch mit dem "javascript:" klappt, liegt es an der Fehlerkorrektur des Browsers. Du solltest dennoch das </archiv/> konsultieren; der bisherige Code ist noch lange nicht optimal.

                            Cheatah

                            --
                            X-Will-Answer-Email: No
                            X-Please-Search-Archive-First: Absolutely Yes
                            1. Hi,

                              Hmmh, also das funktioniert bei Dir mit IE 6.0???

                              ja.

                              Da soll einer draus schlau werden.

                              Sag nichts, ich hab neulich mit Spiel 77 satte 70 Euro gewonnen! ;-)

                              Glückspilz! ;-)

                              Sagen wir es anders: Dass (bzw. _wenn_) es auch mit dem "javascript:" klappt, liegt es an der Fehlerkorrektur des Browsers.

                              Das hört sich nicht nach sauberem Code an. Vielleicht eine naive Frage, aber warum gibt es eigentlich so eine schnuckige Fehlerkorrektur??? Wenn ich bei C++ irgend ein Scheiß macht, sagt auch nicht der liebe Compiler "och gott, kleiner Fehler den korrigier ich jetzt mal". Sondern es gibt eine (einigermaßen) aussagekräftige Fehlermeldung. Obwohl, wär doch mal ne hübsche Idee ne Fehlerkorrektur bei ungültigen Zeigern??? - Würd bestimmt für unendlichen Spaß sorgen ;-))

                              Du solltest dennoch das </archiv/> konsultieren; der bisherige Code ist noch lange nicht optimal.

                              OK, ich werd mich bemühen, vielleicht krieg ich dann die Wahrscheinlichkeit das ich auf Anhieb mit nem neuen Javascript ins schwarze treffe auf ne gewöhnliche Sportwette runter ;-)

                              Ciao,

                              Timo

                        2. Hallo,

                          Ich sehe mir aber gerade den Code an: "javascript:" ist kein gültiger JavaScript-Befehl

                          Nein. Dies ist gültiger Code gemäß JavaScript 1.2 und ECMA 262. Es ist nur an dieser Stelle reichlich unsinnig, ein Label zu setzen.

                          Dass (bzw. _wenn_) es auch mit dem "javascript:" klappt, liegt es an der Fehlerkorrektur des Browsers.

                          Nein. Es liegt daran, ob sich der Browser gemäß den Standards verhält.

                          Mathias

      2. Hi,

        location.href = url;
        alert(location.href)

        location.href hat immer noch den alten Wert

        Timing. Das Laden einer externen Ressource geht _nicht_ in Nullzeit.

        und spiegel.de wird nicht geladen, wieso eigentlich?

        Auch ohne alert()?

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Timing. Das Laden einer externen Ressource geht _nicht_ in Nullzeit.

          OK, klingt verständlich. Ich habe gedacht location.href ist gleichzustellen mit der Adressenzeile des Browsers.

          und spiegel.de wird nicht geladen, wieso eigentlich?

          Auch ohne alert()?

          Yepp auch ohne, siehe dazu auch mein anderes Posting.

          Ciao,

          Timo

          1. Hi,

            Ich habe gedacht location.href ist gleichzustellen mit der Adressenzeile des Browsers.

            im weitesten Sinne ist es das auch. Eine der wichtigsten Gemeinsamkeiten ist, dass bei beiden Varianten der Browser zum Anfordern einer Ressource beauftragt wird - es ist ein verbreiteter Irrtum, dass JavaScript hier eine Ressource anfordern würde.

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes