HighDots Forums  

location.replace als onclick-event funktioniert nicht

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss location.replace als onclick-event funktioniert nicht in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
marc heiners
 
Posts: n/a

Default location.replace als onclick-event funktioniert nicht - 04-13-2007 , 05:25 AM






Hallo zusammen (hallo Martin! ;-)

Im Scriptbereich habe ich einen Countdown, der nach x Sekunden den User auf
eine andere Seite umleitet. Dazu habe ich "location.replace" genutzt, damit
er nicht mehr auf die Seite, von der er weitergeleitet wurde zurück kann
(wenn er das mit Tricks umgeht, spielt das hier keine Rolle)
Nun will ich dem User die Möglichkeit geben, auch vorher schon auf die
nächste Seite zu gelangen. Auch hier soll er nicht mehr zurückkommen sollen.
Daher habe ich naheliegenderweise den Link

<a href="ende.php?d=0"
onclick="location.replace('ende.php?d=0')">beenden </a>

mit einem onclick-event gebaut. Die Weiterleitung funktioniert aber im
Gegensatz zur countdownmäßigen Weiterleitung kann er in diesem Fall wieder
auf die Seite zurück. Aber warum?

Für den Fall, dass es von Interesse sein könnte, unten noch der Code mit dem
Countdown.

Viele Grüße
Marc

-----------------------------------------

<script language="javascript">


var initi = window.setInterval ('downcount()', 1000);
var text = 'Die Aufnahme wird in ';
var zahl = 72;
var dokument="ende.php?d=0";

function downcount()
{
window.setTimeout("downcount2()",2000);
}

function downcount2()
{
zeige = text + 'in ' +zahl+ ' Sekunden beendet';
window.status = zeige ;


// für den Internet Explorer
document.all['max'].innerHTML = zeige ;
// für die neuen Netscape Versionen
document.getElementById('max').innerHTML = zeige ;
zahl --;
if (zahl < 0 )
{
location.replace('ende.php?d=0');

}
}
</script>



Reply With Quote
  #2  
Old   
Martin Honnen
 
Posts: n/a

Default Re: location.replace als onclick-event funktioniert nicht - 04-13-2007 , 06:47 AM






marc heiners wrote:

Quote:
a href="ende.php?d=0"
onclick="location.replace('ende.php?d=0')">beenden </a
<a href="ende.php?d=0"
onclick="window.location.replace(this.href);
return false;">beenden</a>
sollte helfen.

--

Martin Honnen
http://JavaScript.FAQTs.com/


Reply With Quote
  #3  
Old   
Alexander Clauss
 
Posts: n/a

Default Re: location.replace als onclick-event funktioniert nicht - 04-13-2007 , 06:55 AM



marc heiners <mheinersundco (AT) t-online (DOT) de> wrote:

Quote:
a href="ende.php?d=0"
onclick="location.replace('ende.php?d=0')">beenden </a
Wie immer: im onclick-Eventhandler bei Links solltest Du immer(!!!)
einen Return-wert angeben, damit Du dem Browser sagen kannst, ob er die
eigentliche Aktion des Klicks (hier also das normale Öffnen der über das
HREF-Attribut referenzierten Seite) durchgeführen soll, oder nicht.

Also mit "return false" als letzten Befehl im Handler wird die
Standardaktion unterdrückt. Ohne Returnwert öffnet der Browser nämlich
nach dem onclick-Handler noch den normalen Link. Und da das Öffnen von
Links u.U. eine Weile im Hintergrund ablaufen wird, bevor z.B. der
Server antwortet, kann es durchaus passieren, daß die beiden hier
geatsrteten Aktionen (location.replace und das öffnen eines Links) sich
gegenseitig überholen können. D.h. der normale "Link" öffnet zu erst
(und damit landet dann die vorherige Seite ganz normal in der History)
und wird dann erst durch die "replace"-Anweisung ersetzt (aber eben zu
spät).

--
Alexander


Reply With Quote
  #4  
Old   
marc heiners
 
Posts: n/a

Default Danke Euch beiden! - 04-13-2007 , 12:08 PM



Vielen herzlichen Dank Dir und Alexander für die technischen Erläuterungen!

Viele Grüße und ein schönes Wochenende!
Marc



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.