JavaScript und C# - location.href ändert sich nicht

wufox

Newbie
Registriert
März 2014
Beiträge
2
Ich habe eine Webanwendung geschrieben, bei der programmatisch ein Menü erstellt wird, aus dem ich mehrere Druckdateien als PDF selektieren kann. Beispielsweise kann ich „Sammeldruck offene Reisen“ anklicken und es wird in einem zusätzlichen Fenster die entsprechende PDF-Datei angezeigt. Danach kann ich das PDF-Fenster wieder schließen und aus dem Menü „Sammeldruck selektierte Reisen“ aufrufen. Allerdings muss hierbei vorher eine oder mehrere Reisen über Checkboxen ausgewählt werden. In der Adresszeile des Browsers steht aber immer noch der Querystring aus dem vorhergehenden Druck, z.B.:
Code:
“.../MeineReisen.aspx?mode=printreisen“
Statt der selektierten Reisen werden nochmals die offenen Reisen angezeigt“. Da normalerweise die selektierten Zustände aus den Checkboxen für den Druck übernommen werden müssen, wird AutoPostBack auf true gesetzt, was automatisch eine Javascript-Funktion __doPostBack generiert.

Ich habe nun ein Javascript geschrieben, das diese Javascriptfunktion ersetzt, um die URL entsprechend anzupassen. Das Javascript sieht so aus:

Code:
 <script type ="text/javascript">
  var __oldDoPostBack;
  var url;
  __oldDoPostBack = __doPostBack;
  __doPostBack = function (eventTarget, eventArgument) {
    url = location.protocol + '//' + location.host + location.pathname;
    location.href = url;
    alert('url = ' + url);
    alert('location.href = ' + location.href);
    __oldDoPostBack.call(this, eventTarget, eventArgument);
  } 
</script>

Die Zeilen mit dem Befehl „alert“ sind nur als Testzeilen gedacht, um anzuzeigen welchen Wert die entsprechenden Eigenschaften enthalten. Dieses Javascript wird während des Programmlaufs aufgerufen und funktioniert soweit korrekt. Leider funktioniert die folgende Zeile nicht:

Code:
location.href = url;

Sie wird nämlich nicht mit der url überschrieben. Es werden mit den alert-Aufrufen folgende Texte ausgegeben:

Code:
url = http://localhost:2893/Hansalog.Travel.WebUI/MeineReisen.aspx

Code:
location.href = http://localhost:2893/Hansalog.Travel.WebUI/MeineReisen.aspx?mode=printreisen

Ich habe auch window.location.href, window.location und location ausprobiert. Es half aber alles nichts, die url wurde nicht übernommen.

Warum nicht oder stehe ich da irgendwo auf dem Schlauch?
 
Bis jetzt habe ich es nur auf meinem Entwicklungssystem (VS 2005 / IE 7) ausprobiert.

Auch mit location.replace(url) klappt es nicht. Ich werde mal Webanwendung erstellen und auf einer neueren IE-Version ausprobieren und mit anderen Browsern.

Mittlerweile habe ich auch andere Browser ausprobiert. Aber es geht leider überall nicht.
 
Zuletzt bearbeitet:
Zurück
Oben