Denn die Seite ist gesperrt können Sie mit JavaScript nichts anfangen, da es ebenfalls gesperrt ist.
Aber was wollen Sie eigentlich tun? Versuchen Sie, irgendwie die Tatsache zu protokollieren, dass der Benutzer die Datei herunterlädt? Wenn ja, gibt es dafür bessere Möglichkeiten, und zwar auf der Server-Seite. Verwenden Sie eine serverseitige Skriptsprache, um die Datei bereitzustellen und die Tatsache zu protokollieren, dass sie heruntergeladen wurde.
Wenn Sie das nicht vorhaben, können Sie nur Folgendes verwenden onclick
auf den Link oder onunload
/ onbeforeunload
Diese sind jedoch weniger zuverlässig und ich bin sicher, dass Sie bei verschiedenen Browsern ein völlig anderes Verhalten feststellen werden.
Wenn ich es mir recht überlege, gibt es noch eine weitere Möglichkeit, aber die ist sehr schmutzig . Die Idee ist, ein Intervall festzulegen, das jede Sekunde ausgeführt wird, und zu prüfen, ob zwischen zwei Durchläufen mehr als eine Sekunde vergangen ist. Etwas wie:
var lastTime = new Date().getTime();
function checkTime() {
var curTime = new Date().getTime();
if (curTime - lastTime > 1100) { // 1100 because there might be small browser lags
// do something after the dialog appeared and the user did something with it
}
lastTime = curTime;
}
setInterval(checkTime, 1000);
Bitte beachten Sie, dass es Browser gibt (Chrome ist ein Beispiel, glaube ich), die nicht Block die Seite, während dieses Dialogfeld geöffnet ist, so dass dies möglicherweise nicht funktioniert. Stellen Sie sicher, dass Sie alles doppelt überprüfen, wenn Sie dies verwenden.
Ich muss jetzt duschen gehen.