[vienna.pm] Back button

Patrick Meidl patrick at klivv.oeaw.ac.at
Tue Oct 17 05:50:10 CDT 2000


On Mon, Oct 16 2000, Walter Böhm <boehm at isis.wu-wien.ac.at> wrote:

> Bitte, kann mir jemand verraten, wie man in einem CGI script
> den Back Button des Browsers stilllegt?

grundsaetzlich ist der back button eine frage des clients, du musst das
problem also client-seitig angehen, also z.b. mit javascript, wie schon
der peter vorgeschlagen hat.

"back button stilllegen" heisst, dass du verhindern musst, dass ein
eintrag in der history list des browsers gemacht wird. dies erreichst du
mit der javascript-methode 'location.replace(url)'. wenn es sich um
einen gewoehnlichen link handelt, wuerdest du also statt

<a href="http://deine.url">go!</a>

folgendes schreiben:

<a href="javascript:'location.replace(http://deine.url)'">go!</a>

und damit bewirken, dass die seite http://deine.url den eintrag der
aktuellen seiten in der history-list ueberscheibt.

nachdem bei dir aber ein CGI-script involviert ist, ist es
wahrscheinlich schwieriger. wenn du naemlich ein form mit method 'post'
hast, funktioniert diese methode nicht (zumindest nicht auf direktem weg
durch verwendung eines analogen javascript-codes als form-action). ich
hab unlaengst ein verwandtes problem gehabt, trotz langer recherche
nichts brauchbares gefunden und daher einen eigenen workaround
entwickelt:

seite A enthaelt das form (und zu selbigem soll man nicht per back
button zurueck koennen). bei submit des forms auf seite A soll vom CGI
die antwortseite B geschickt werden. jetzt mach ich das so, dass das CGI
script seite B nicht direkt schickt, sondern eine leere seite, die
onload ein javascript ausfuehrt, welches: 1. die url von seite B in ein
cookie schreibt (die url von seite B musst du u.u. von der CGI.pm
methode 'self_url()' erzeugen lassen) und 2. mittels `history.go(-1)`
zur seite A zurueckgeht. seite A prueft onload, ob ein cookie mit einer
url existiert; wenn ja, wird die url ausgelesen, das cookie geloescht
und mittels `location.replace()` die url geladen.

ich geb's zu, ist ein ziemlich kranker workaround, aber die verwendung
eines verbindungslosen protokolls fuer aufgaben, die nach einer
verbindung verlangen, zwingt einen oft dazu, solche dinge zu tun ...

    HTH
        *patrick*

--
Mag. Patrick Meidl                                       +43-1-7861388
Witzelsbergergasse 20/6                               +43-699-10460516
A-1150 Vienna, Austria                        p.meidl at klivv.oeaw.ac.at
--
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
Url : http://mail.pm.org/archives/vienna-pm/attachments/20001017/43ce18b3/attachment.bin


More information about the Vienna-pm mailing list