[JS]bestand downloaden dmv window.open in IE

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • leendertv
  • Registratie: September 2007
  • Laatst online: 09-08-2022
Ha Allemaal,

Ik heb in een webapplicatie een button gemaakt met daarachter een functie om de inhoud van een tabel naar een csv bestand te exporteren (op de server d.m.v. lua) en aan te bieden ter download (javascript) aan de gebruiker.

Nu gebruik ik hiervoor de javascript functie window.open('naambestand.csv')

Nu werkt dit uitstekend in Opera en Firefox (alleen de pop-upblocker even instellen op het toestaan van pop-ups vanaf deze site), maar in Internet Explorer krijg je niet de vraag of je het csv bestand op wilt slaan.

Nu heb ik gevonden dat het gaat om de beveiligings instelling "aangepast niveau -> gedownloade elementen -> automatisch vragen bij het downloaden van bestanden" -> Inschakelen".
Dit kun je dan het beste doen door de site aan vertrouwde websites toe te voegen en hierop deze instelling aan te passen.

Nu wil ik dit liever de gebruikers niet aandoen. Voor veel gebruikers zijn zulke dingen al snel te technisch en het is een extra blokkade om de applicatie te gebruiken voor externe gebruikers.

Weten jullie een manier om dit te omzeilen? Misschien kan het op een andere manier waarmee je hier geen last van hebt? Ik heb niets kunnen vinden.

Alvast bedankt!

Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Wat dacht je van iets als dit:
HTML:
1
<a href="naambestand.csv" target="_blank">Open CSV</a>

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • leendertv
  • Registratie: September 2007
  • Laatst online: 09-08-2022
Wolfboy schreef op vrijdag 10 september 2010 @ 17:38:
Wat dacht je van iets als dit:
HTML:
1
<a href="naambestand.csv" target="_blank">Open CSV</a>
Nee dat kan niet.
Dat csv bestand wordt dynamisch gegenereerd (op de server dmv lua) als er op die knop gedrukt word.
Er zit dus een Ajax functie tussen. Zodra het .csv bestand op de webserver gemaakt is print ik dus dmv ajax een stukje javascript die zorgt dat het csv bestand gedownload wordt.

Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 18:47
Waarom niet nadat het is gegenereerd (tijdelijk) opslaan op de server en dan een link in de vorm van een href naar dat bestand op de pagina zetten?

Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

gimpy schreef op vrijdag 10 september 2010 @ 18:48:
[...]

Nee dat kan niet.
Dat csv bestand wordt dynamisch gegenereerd (op de server dmv lua) als er op die knop gedrukt word.
Er zit dus een Ajax functie tussen. Zodra het .csv bestand op de webserver gemaakt is print ik dus dmv ajax een stukje javascript die zorgt dat het csv bestand gedownload wordt.
In dat geval linken naar de pagina die de csv genereerd?

De popup blockers gaan in ieder geval direct zeuren als een popup niet door een user (klik) event gegenereerd wordt. Bij ajax callback functies werkt het dus niet nee.

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • leendertv
  • Registratie: September 2007
  • Laatst online: 09-08-2022
Caelorum schreef op vrijdag 10 september 2010 @ 18:49:
Waarom niet nadat het is gegenereerd (tijdelijk) opslaan op de server en dan een link in de vorm van een href naar dat bestand op de pagina zetten?
Maar dan moet de gebruiker 2x klikken: 1 keer om het bestand te genereren en daarna nog om te downloaden...dat is niks...
Wolfboy schreef op vrijdag 10 september 2010 @ 19:16:
[...]
In dat geval linken naar de pagina die de csv genereerd?

De popup blockers gaan in ieder geval direct zeuren als een popup niet door een user (klik) event gegenereerd wordt. Bij ajax callback functies werkt het dus niet nee.
Het gaat om een systeem wat opgebouwd is in 'partjes' alle functionaliteit stop je dus in een partje.
Dus een andere manier zie ik helaas niet :/

Acties:
  • 0 Henk 'm!

  • Accesteam
  • Registratie: Maart 2009
  • Laatst online: 12-09 22:52
Headers van de HTTP Response aanpassen.

Wikipedia: List of HTTP header fields (application/force-download)

Kan bijvoorbeeld in PHP met de Header() functie:
http://php.net/manual/en/function.header.php

Weet alleen niet of je ook een server-side scripting taal gebruikt voor je pagina's, denk in ieder geval niet dat het mogelijk is om een download te forceren met alleen javascript.

[ Voor 8% gewijzigd door Accesteam op 10-09-2010 20:59 ]


Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

gimpy schreef op vrijdag 10 september 2010 @ 20:48:
Het gaat om een systeem wat opgebouwd is in 'partjes' alle functionaliteit stop je dus in een partje.
Dus een andere manier zie ik helaas niet :/
Als je het niet live kan genereren zal de gebruiker 2x moeten klikken.

Al zie ik mogelijk nog 1 mogelijkheid om er omheen te hacken. Open de popup direct op de achtergrond en laat de url wijzigen door de ajax callback of gebruik een iframe voor het geheel. Dan kan je er wel omheen werken.

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • leendertv
  • Registratie: September 2007
  • Laatst online: 09-08-2022
Bedankt! Ik ga deze week nog aan de slag met deze twee tips.
Ik hoop dat ik er een beetje om heen kan hacken...en anders kan het helaas niet.

Acties:
  • 0 Henk 'm!

  • leendertv
  • Registratie: September 2007
  • Laatst online: 09-08-2022
Wolfboy schreef op vrijdag 10 september 2010 @ 21:16:
Al zie ik mogelijk nog 1 mogelijkheid om er omheen te hacken. Open de popup direct op de achtergrond en ..... of gebruik een iframe voor het geheel. Dan kan je er wel omheen werken.
Deze truc werkt voor mij! Bedankt!
Pagina: 1