Ankündigung

Einklappen
Keine Ankündigung bisher.

window.location.href mit firefox

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • window.location.href mit firefox

    hi,

    ich hab ein javascript welches soweit auch tut was es soll, bis auf eine sache:

    ganz am ende möchte ich über js eine neue seite laden, dies mache ich am ende des skriptes mit :

    Code:
    window.location.href("meineNeueSeite.php");
    das funktioniert aber im firefox nicht, in der js-konsole krieg ich als fehlermeldung:

    window.location.href is not a function
    in selfhtml ist aber aufgelistet das das für alle browser einschließlich den firefox gehen soll, tuts aber anscheinend nicht........das ist jetzt schon das zweite mal das ich beim firefox über sowas stolpere obwohl in selfhtml steht das es geht.......

    im IE geht das doch so oder? (kann ich selbst nicht testen, arbeite ausschließlich unter linux und habs aus zeitmangel noch nicht geschafft mich mit wine auseinanderzusetzen..)

    was muss ich beim firefox machen wenn ich einfach eine andere seite laden will?

    danke im voraus für alle antworten!


  • #2
    window.location.href ist keine Funktion sondern eine Eigenschaft

    http://de.selfhtml.org/javascript/ob...ation.htm#href

    Kommentar


    • #3
      edit: da war mal wieder einer schneller

      versuchs mal so:
      window.location.href="meineNeueSeite.php";

      und window.location.href ist keine Funktion.

      schau dir das mal an:
      PHP-Code:
      <html><head><title>Test</title>
      <
      script type="text/javascript">
      function 
      Wunsch () {
        var 
      Ziel window.prompt("Ihr Wunsch-URI:""");
        
      window.location.href Ziel;
      }
      </script>
      </head><body>
      [url="javascript:Wunsch()"]Wunschverweis[/url]
      </body></html> 
      http://de.selfhtml.org/javascript/objekte/location.htm
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Steht doch aber wieder mal in der Fehlermeldung, was der Fehler war
        Vielleicht hast dus ja mit location.replace() verwechselt.

        Kommentar


        • #5
          arrggg, ja,

          manchmal glaub ich ich bin zu blöd zu lesen, das gleiche beispiel hatte ich mir auch angeschaut, hab das aber dann aus mir unerfindlichen gründen trotzdem anders gemacht, also mit den klammer.....sollte vielleicht früher schlafen gehen......

          aber eine sache ist mir absolut unerklärlich:

          Code:
          function bla () {
          
          ............
          
          var forwardUrl = "http://localhost/epo/insertNewAgent.php?newAgent=" + newAgent + "&newAgentClassInt=" + pNewAgentClassInt;
          
          // start php script
          
          window.location.href = forwardUrl;
          //end bla
          }
          klappt nicht, es klappt nur wenn ich noch irgendwas hinter window.location.href schreibe, also z.b.:

          Code:
          function bla () {
          
          ............
          
          var forwardUrl = "http://localhost/epo/insertNewAgent.php?newAgent=" + newAgent + "&newAgentClassInt=" + pNewAgentClassInt;
          
          // start php script
          
          window.location.href = forwardUrl;
          //end bla
          alert("halloooooooo!!!!!!!!!!");
          }
          mach ich nicht das alert am ende hin, wird die seite nicht aufgerufen, genauer gesagt passiert einfach gar nix, in der js-konsole steht aber kein fehler....

          kann mir jemand erklären was denn hier falsch läuft?

          danke für jede hilfe

          Kommentar


          • #6
            Schreib mal den relevanten JavaScript-Block ausm HTML-Quelltext ohne Kürzungen hier rein.

            Kommentar


            • #7
              ist wirklich so:

              Code:
              function addNewAgent(pNewAgentClassStr, pNewAgentClassInt, pDefSelectList) {
              
              	var DEBUG = "FALSE";
              
              	if(pNewAgentClassInt == "" || pNewAgentClassInt == null){
              		alert("Keine Wirkstoffklasse ausgewählt!");
              		return 1;
              	}
              
               
              	var newAgent = prompt("Bitte geben Sie einen neuen Wirkstoff fuer die Wirkstoffklasse " + pNewAgentClassStr + " ein:", "");
              
              	// check if input value was given
              
              	if(newAgent == "" || newAgent == null){
              		alert("Keinen Wirkstoff eingegeben!");
              		return 1;
              	}
              	
              
              	// check if input value has correct format
              
              	var validFormatRegex = /(^(\w+\s*)+$)/;
              
              	if(!(newAgent.match(validFormatRegex))){
              		alert("Ungültiges Format!");
              		return 1;
              	}
              
              
              	// check if input value already exsists
              
              	for(var i = 0; i < pDefSelectList.length; i++) {
              		
              
              		if(newAgent == pDefSelectList.options[i].text) {
              	
              		alert("Wirkstoff ist schon eingetragen!");
              		return 1;
              		
              		}	
              	
              	}
              	
              
              	/*		input value ok		*/
              
              	// generate URI
              	
              	var forwardUrl = "http://localhost/epo/insertNewAgent.php?newAgent=" + newAgent + "&newAgentClassInt=" + pNewAgentClassInt + "&newAgentClassStr=" + pNewAgentClassStr; 
              
              	// start php script
              
              	window.location.href = forwardUrl;
              
              	//alert("hallo!!!!!!!!!!!");
              }
              GEHT NICHT (auch kein fehler in der js-konsole), das alert am ende ist auskommentiert, aber genau das gleiche

              Code:
              function addNewAgent(pNewAgentClassStr, pNewAgentClassInt, pDefSelectList) {
              
              	var DEBUG = "FALSE";
              
              	if(pNewAgentClassInt == "" || pNewAgentClassInt == null){
              		alert("Keine Wirkstoffklasse ausgewählt!");
              		return 1;
              	}
              
               
              	var newAgent = prompt("Bitte geben Sie einen neuen Wirkstoff fuer die Wirkstoffklasse " + pNewAgentClassStr + " ein:", "");
              
              	// check if input value was given
              
              	if(newAgent == "" || newAgent == null){
              		alert("Keinen Wirkstoff eingegeben!");
              		return 1;
              	}
              	
              
              	// check if input value has correct format
              
              	var validFormatRegex = /(^(\w+\s*)+$)/;
              
              	if(!(newAgent.match(validFormatRegex))){
              		alert("Ungültiges Format!");
              		return 1;
              	}
              
              
              	// check if input value already exsists
              
              	for(var i = 0; i < pDefSelectList.length; i++) {
              		
              
              		if(newAgent == pDefSelectList.options[i].text) {
              	
              		alert("Wirkstoff ist schon eingetragen!");
              		return 1;
              		
              		}	
              	
              	}
              	
              
              	/*		input value ok		*/
              
              	// generate URI
              	
              	var forwardUrl = "http://localhost/epo/insertNewAgent.php?newAgent=" + newAgent + "&newAgentClassInt=" + pNewAgentClassInt + "&newAgentClassStr=" + pNewAgentClassStr; 
              
              	// start php script
              
              	window.location.href = forwardUrl;
              
              	alert("hallo!!!!!!!!!!!");
              }
              GEHT, wenn das alert wieder drinnen ist!

              irgendwelche ideen?

              Kommentar


              • #8
                ohne jetzt den thread künstlich nach pushen zu wollen, aber ich habs gerade eben nochmal geprüft und es bleibt das gleiche:

                mit alert geht es, ohne geht es nicht............
                und ich seh einfach nix im quelltext was dafür die ursache sein könnte.......

                hat jemand schon mal ein ähnliches problem gehabt? das würde mich ja schon beruhigen wenn ich da nicht der einzige wäre......
                wenn ja unter welchem browser?

                danke für jede info

                Kommentar


                • #9
                  ich benutz immer location.href (ohne window.) und hatte noch nie Probleme.

                  Kommentar


                  • #10
                    hmm,

                    ne, ohne window ist es das gleiche.........werds jetzt mal mit verschiedenen anderen browsern probieren ob das vielleicht eine firefox-spezifische geschichte ist.......

                    Kommentar


                    • #11
                      Gib doch mal einen Link zu deiner Seite.

                      Kommentar


                      • #12
                        Gib doch mal einen Link zu deiner Seite.
                        kann ich leider nicht, läuft nur innerhalb eines sub-intranets.......

                        mir kommt es so vor als müsste ich dem browser nach:

                        Code:
                        window.location.href = forwardUrl;
                        noch sagen das er diese änderung noch aktualisieren bzw. übernehmen sollte, aus irgendwelchen gründen aktualisiert er sich nur, wenn ich den browser zwinge etwas auszugeben, also durch alert wie beschrieben.

                        aber laut allem was ich bisher darüber gelesen habe, macht der browser das automatisch sobald ich window.location.href setze...

                        wie ist das bei euch? reicht es sowas

                        Code:
                        window.location.href = forwardUrl;
                        zu schreiben, oder müsst ihr den browser noch anweisen, das neu zu laden oder den ausgabepuffer zu flushen oder weiß der geier was? alle beispiele die ich mir angeschaut habe liefen durch schlichtes setzen der eigenschaft......

                        es ist mir völlig unerklärlich warum das bei mir nicht klappt....

                        bin für jede info dankbar........

                        Kommentar


                        • #13
                          Was steht denn dann letztlich genau in "forwardUrl"? Sieht wohl echt nach einem komischen Bug oder sowas aus. Aber offenbar lassen sich die Umstände, wann dieser Bug auftritt ja offenbar mit einem Befehl nach location.href ändern. Mach doch mal statt alert("Hallo!!!!!!1!!111eins"); ein
                          Code:
                          void(0);
                          Oder wenn das nix hilft ein
                          Code:
                          locationHref(forwardUrl);
                          //
                          function locationHref(url) // antibug
                          {
                            location.href = url;
                          }

                          Kommentar


                          • #14
                            hmm,

                            hat leider alles nichts gebracht, hab jeden deiner tips probiert........

                            was ich gemacht hab:

                            Mach doch mal statt alert("Hallo!!!!!!1!!111eins"); ein
                            Code:
                            void(0);
                            Code:
                            function addNewAgent(pNewAgentClassStr, pNewAgentClassInt, pDefSelectList) {
                            
                            .....funktionskörper wie bereits gepostet.......
                            
                            	// start php script
                            
                            	location.href = forwardUrl;
                            	void(0);
                            }
                            bringt nix, mache ich jedoch hinter void(0) das gute alte alert rein funktioniert es, aber das war ja schon vorher so........

                            Oder wenn das nix hilft ein
                            Code:
                            locationHref(forwardUrl);
                            //
                            function locationHref(url) // antibug
                            {
                            location.href = url;
                            }

                            Code:
                            unction addNewAgent(pNewAgentClassStr, pNewAgentClassInt, pDefSelectList) {
                            
                            .....funktionskörper wie bereits gepostet.......
                            
                            locationHref(forwardUrl);
                            }
                            
                            function locationHref(url) // antibug 
                            {
                              location.href = url;
                            }
                            bringt auch nichts.......

                            Was steht denn dann letztlich genau in "forwardUrl"?
                            wenn ich mir die url ausgeben lasse, sehe ich das die stimmt.........hab ich vor dem funktionsende besagte alert-box klappts ja, d.h. ich werde auf die richtige url geleitet........daran kanns also nicht hängen........

                            ich hab mir jetzt einfach mal alle werte die ich in der funktion verwende / erzeuge ausgeben lassen und kontrolliert, die sind alle ok..........müssen sie ja auch sein, die funktion tut ja auch was sie soll, aber halt eben nur dann wenn ganz am ende der funktion ein alert steht............
                            auch ein return am ende der funktion hat nicht weitergeholfen......

                            ich glaube das ist der bescheuertste fehler den ich in diesem jahr hatte und ich hab absolut keine idee was ich noch probieren könnte......

                            noch irgendwelche einfälle?

                            Kommentar


                            • #15
                              Ja: Schritt für Schritt JS-Elemente aus der Funktion rausschmeissen, zumindest testweise. Dann siehst du vielleicht welches Element den Fehler/Bug erzeugt.

                              Du könntest statt location.href auch location.replace() benutzen. Ersetzt zwar den History-Eintrag, aber man muss manchmal Prioritäten setzen und sich vor allem nicht unnötig an solchen Fehlern aufhalten.

                              Kommentar

                              Lädt...
                              X