Lieber Johannes,
Theoretisch müsste es ja so funktionieren: Wenn der User den Back-Button nutzt, wird eine Funktion aufgerufen, die zu einem reload der Seite führt.
warum muss es ein Reload sein? Reicht es Dir nicht, wenn per Javascript eine gefakte Javascript-Datei eingebunden werden soll (oder von mir aus ein neues Bild), wobei über den Request wesentliche Daten an den Server geschickt werden?
Denkansatz (alles ungetestet):
function init() {
// Beginn des Besuches dem document-Objekt anhängen
document.myStartTime = new Date();
}
function track_me () {
var usertime = new Date();
usertime -= document.myStartTime; // Differenz = Aufenthaltsdauer in Millisekunden
var url = document.location;
var requestString = "http://www.example.org/tracker/request.php?url=";
requestString += url;
requestString += "&usertime=" + usertime;
// Die Bild-Variante
var dummy_img = new Image();
dummy_img.src = requestString;
// Die JS-Variante
var dummy_js = document.createElement("script");
dummy_js.href = requestString;
dummy_js.type = "text/javascript";
document.body.insertBefore(dummy_js, document.body.firstChild);
return;
}
Javascript fordert onUnLoad eine Datei an, die folgenden Dateinamen haben könnte: "http://www.example.org/tracker/request.php?url=http://xyz.example.org/page.htm&usertime=1432" an. Das Script "request.php" sendet eine passende Datei zurück (spacer.gif oder eine dummy.js - jenachdem wie Du es implementierst), speichert aber für sich die übermittelten Daten (url und usertime) ab.
Und jetzt kommt das Schönste: Ohne Javascript beim User ist alles umsonst. :-)
Liebe Grüße aus Ellwangen,
Felix Riesterer.