Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

"Wollen Sie die Seite wirklich verlassen?"

Empfohlene Antworten

Wie genau sieht das onUnload jetzt aus?

Als Ansatz:


<body onUnload="return confirm('Sie verlieren alle Änderungen, da nicht gespeicher wurde');"

Aus den früheren Postings habe ich ja schon erfahren, dass sich der onUnload-Handler nicht sonderlich um Rückgabewerte schert.

Mittlerweile mache ich es so, wie ich's bereits im letzten Posting angekündigt habe, also in einem hidden field ein Flag setzen, dass mein CGI auswertet und dann die Seite entsprechend modifiziert, so dass in meinem onLoad nicht alles ausgeführt wird, was normalerweise ausgeführt werden soll, wenn ich die Seite extern anspreche (also kein history.go(0) mache).

Nach meiner bisherigen Recherche scheint das auch so ziemlich der einzige Weg zu sein.

Wäre es ned besser gewesen einen neuen Thread damit aufzumachen, als einen fast 2 JAhre alten aus der Kiste zu holen? :)

Sorry, den Thread hatte ich mir ergooglet. Hatte auch den Vorteil, dass ich diese überflüssige Diskussion über die Verwendung von Javascript nicht nochmal neu entfachen musste.

Bin zugegebener Maßen zwar ein gestandener C++-Entwickluer aber ein Neuling in Sachen HTML und Javascript. Von daher war ich beim Lesen des Threads doch etwas verwundert, mit welchem Fanatismus hier diskutiert wird. So mancher scheint beim Thema Javascript rot zu sehen und zu vergessen, dass man Web-Entwicklung auch für's Intranet bzw. für andere, nicht öffentliche Produkte betreiben kann. Aber sowas scheint eine Geisel unserer Zeit zu sein, da es in fast jedem IT-Bereich vorkommt (Mac / PC, Intel / AMD, Windows / Linux, Microsoft / Rest der freien Welt). Schön wäre es, wenn man dazu übergehen könnte, von jedem das Beste zu verwenden, perfekt ist nämlich nix davon.

So, genug OT gewesen.

Ich danke für die Aufmerksamkeit.

Bis in 2 Jahren wieder. ;o)

Zu Sinn und Unsinn einer solchen Lösung:

Bei unseren Intranetanwendungen (für Interessierte: CPG5 auf dem Mainframe) habe ich eine solche Lösung aus zwei Gründen ebenfalls benötigt: Zum Einen werden sogenannte TS-Queues pro Session angelegt, die erst beim Abmelden gelöscht werden und zum Anderen haben Nutzer immer wieder das Problem gehabt, dass ein Link aus einem externen Programm die Anwendung "weggeladen" hat (u.a weil nicht alle auf "Externe Links in neuem Fenster öffnen" umgestellt haben). Manchmal ist's also doch sinnvoll, soetwas zu machen!

Zur Lösung:

Der IE kennt als Einziger einen Eventhandler "onBeforeUnload", mit dem sich eine Sicherheitsabfrage programmieren lässt.

Dazu folgender Code (aus dem Kopf, daher syntaktisch nicht zwingend korrekt):


function wegda ()
{
event.returnValue = "Achtung! Bitte verlassen Sie die Anwendung nur über den 'Beenden'-Button!";
}
[...]
<body onbeforeunload="wegda();">
[/php]

Damit erhält der Anwender eine Abfrage, ob er die Seite wirklich verlassen will. Daran hindern kann man ihn nicht, da er die Abfrage einfach mit Ok beantworten kann. Es ist also nur eine Sicherheitsabfrage!

Infos zu onbeforeunload findet man im MSDN!

Für die anderen Browser kenne ich persönlich keine Lösung, für mich reichte dieses, da wir den IE im Unternehmen als Standardbrowser haben.

HTH,

ICQ

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.