Linuchs: a href klicken, aber Seite nicht beenden

Moin,

ich zeige eine Liste an und erstelle dazu eine CSV-Datei. Auf der Seite wird die zum Herunterladen angeboten:

<a href="daten/eventliste.csv">eventliste.csv</a>

Bei Klick auf den Link kommt korrekt die Fläche, mit der ich öffnen oder speichern kann.

Aber der Event-Listener löst aus und blendet ein Warte-Symbol über die Seite, sodass sie nicht mehr lesbar ist.

window.addEventListener('beforeunload', function () {
  document.getElementById( "seite_verlassen" ).style.display = "block";
});

Wie kann ich für diesen Fall beforeunload umgehen, bzw das Herunterladen anders anbieten?

Gruß Linuchs

  1. Evt. mit "target='_blank'"?

    Grüße Basti

    1. Hallo basti,

      target='_blank' funktioniert. Danke.

  2. Hallo Linuchs.

    Wie kann ich für diesen Fall beforeunload umgehen, bzw das Herunterladen anders anbieten?

    Du musst es ja gar nicht umgehen, sondern kannst auch eine Kontrallstruktur in die Funktion einbauen.

    MfG, at

  3. moin,

    Wie kann ich für diesen Fall beforeunload umgehen, bzw das Herunterladen anders anbieten?

    <a> ist schonmal gut, weil das auch ohne JS funktioniert. Meine JS Erweiterung würde so aussehen:

    • die Funktion zum clickEvent gibt false zurück
    • und fordert die Datei per AJAX an.

    In der Response wird per FileSaver.js der Speichern unter.. Dialog erzeugt. Die Library findest Du auf den üblichen OpenSource Seiten.

    MfG

  4. <a href="daten/eventliste.csv">eventliste.csv</a>
    

    Eine Möglichkeit ohne JavaScript wäre das download-Attribut:

    <a href="daten/eventliste.csv" download>eventliste.csv</a>