Sziasztok,
Firefox 46.0.1 óta nem engedett a window.close() JavaScript metódus biztonsági okok miatt. Lásd az alábbit:
https://developer.mozilla.org/en-US/docs/Web/API/Window/close
Closing the current window
In the past, when you called the window object's close() method directly, rather than calling close() on a window instance, the browser closed the frontmost window, whether your script created that window or not. This is no longer the case; for security reasons, scripts are no longer allowed to close windows they didn't open. (Firefox 46.0.1: scripts can not close windows, they had not opened)
Weboldalon egy linkre klikkelve fájl letöltést indítok egy új tab-on úgy, hogy a tartalmat kiküldöm megfelelő HTTP formátumban (content type, disposition, length).
A gondom az, hogy nem záródik be egy bizonyos FF verzió óta magától a letöltéshez létrejött ablak (tab).
FF 47-től felfelé tesztelve kikapcsolt multiprocess-nél (e10) eltűnik magától a letöltéshez felugró "üres" ablak, míg engedélyezett MP-nél ott marad. Ez egy sima üres tab. Az a gyanúm, hogy a fentihez köthető, vagy pedig a multiprocess megjelenéséhez a FF-ban, vagy mindkettőhöz.
Ti nem találkoztatok ezzel? Más böngészőn nincs ezzel gondom (IE11, Chrome stb).
- 1716 megtekintés
Hozzászólások
Jelentettem Mozillának is:
- A hozzászóláshoz be kell jelentkezni
Feldobtam SO-ra is:
http://stackoverflow.com/questions/42514081/file-download-window-does-n…
- A hozzászóláshoz be kell jelentkezni
Középső gombbal fájlra kattintásra gondolsz?
- A hozzászóláshoz be kell jelentkezni
Nem. Lásd a Mozilla report-omat. (Azt nem tudom hogy amit mondasz az ugyanezt okozza-e).
- A hozzászóláshoz be kell jelentkezni
Majd kijavítják, amikor kikerülnek az aktuális kódbázisból a régi Mozilla/Netscape kódok. :)
:)
- A hozzászóláshoz be kell jelentkezni
Miért kell egy letöltéshez külön tabot nyitni?
- A hozzászóláshoz be kell jelentkezni
+1
http://stackoverflow.com/questions/364946/how-to-make-pdf-file-download…
De van hogy a download attribute is elég a linkbe.
- A hozzászóláshoz be kell jelentkezni
Szerintem nem jó ez a megközelítés. Ezzel elveszed a user-tól a döntést. Miért jó kikényszeríteni hogy a szervered mindenképp letöltésre ajánlja a PDF fájlt, mikor a beállításoknál amúgy is megadhatja a user, hogy megnyissa külső programmal, vagy a beépítettel, vagy letöltse?
- A hozzászóláshoz be kell jelentkezni
Azert, mert sok bongeszo mindenkeppen inkabb megnyitja a fajlt, de cserebe nem ad lehetoseget menteni. Amugy meg valoszinuleg user igeny a dolog.
De amugy van egy csomo use case, ahol invalid lehetoseg az, hogy a PDF csak megnyiljon, mindenkepp letoltesre van szukseg. Ilyen peldaul a kitoltendo/alairando/scannelendo szerzodes, a kigeneralt szamla alairt PDF verzioja, stb.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
De miért jó az ha elveszed a user-tól a döntés lehetőségét? Nem látom a nyereség oldalát.
- A hozzászóláshoz be kell jelentkezni
Akkor simán használd a download attribútumot, akkor van az hogy a böngésző eldönti.
A lényeg hogy 2017 van, az általad jelzett bug viszont azért van a rendszerben, mert a te megoldásod a 90-es években volt divat.
Tulképp megkérdezted hogy az idei opelt miért nem lehet úgy beindítani hogy a benzintartályba rongyot tömünk és meggyújtjuk mint régen.
- A hozzászóláshoz be kell jelentkezni
Nem értelek igazán, pontosan azt csinálom amit linkeltél. Szinte megegyezik az a tag href értéke és a szerver oldal is.
- A hozzászóláshoz be kell jelentkezni
Nem tudom, ezt a trükköt legutoljára a 90-es években alkalmaztam, hogy új tab aztán javascript close, azóta egyszerűen beírtam a HTML forrásba, hogy download="filename", vagy beírtam a content disposition-t, és működött, nem kellett tabokat nyitogatni.
- A hozzászóláshoz be kell jelentkezni
Elvittétek a szálat egy más irányba. Ami a lényeg, hogy nem én nyitom a tab-ot. Nem tőlünk függ. Ez a Firefox böngésző alapértelmezett viselkedése.
Kicsit bővebben: Nem csinálok javascript-et, nincs semmi kliens oldali móka, hanem szabványos HTTP adatot küldök fájllal úgy ahogy feljebb írtam. Erre FF új tab-ot nyit, mely e10-et engedélyezve ott marad, az nélkül illetve régi viselkedés alapján pedig nem.
- A hozzászóláshoz be kell jelentkezni
Hogy érted, hogy ez a FF alapértelmezett működése? Ha valahova be van linkelve egy pdf, rákattintasz, az alap viselkedés az, hogy megnyitja a belső pdf nézegetőjében, nem nyit új ablakot, és nem indít letöltést.
- A hozzászóláshoz be kell jelentkezni
Rosszul fogalmaztam. Valóban beállítom az új oldal nyitásra a "_blank" targetet, de akkor is el kell tűnnie az újonnan nyílt oldalnak. Tehát nem Javascript-ből nyitom az új oldalt, nincs semmilyen egyéb trükk.
- A hozzászóláshoz be kell jelentkezni
Á értem.
Az alapbeállítás ha jól látom az, hogy a róka a PDF-eket a saját nézegetőjében nyitja meg. Az általad vázolt esetben is ennek kellene történnie. Csináltam pár tesztet. Szimpla html fájl, benne egy link ami egy teszt pdf-re mutat. A linkre kattintva megnyílik a róka PDF nézegetője új lapon.
Az, amit te írsz akkor jön elő, ha beállítom, hogy a pdf-ek megnyitását ne a saját nézegetőjével kezelje. Tényleg fura, hogy ez esetben nyitva marad a lapfül, viszont ahogy látom ennek nincs köze a pdf-hez, más fájlokkal ugyanígy csinál.
Ha nem állítottad el ezt a beállítást, akkor amire még tudok gondolni, hogy generált a pdf, és olyan headereket kap, ami miatt kihagyja a saját nézegetőben megnyitást.
- A hozzászóláshoz be kell jelentkezni
Bármilyen fájlnál fenn áll az eset, így van. Lásd a bugzilla reportom. Ezt megerősítették mások hasonló bug reportokban. Tehát a probléma ismert és már a javítást is eszközölték, mely elvileg az 55-ös verziótól fog érkezni.
- A hozzászóláshoz be kell jelentkezni
Mert van, amikor a usernek nincs szuksege a dontes lehetosegere, mert a valaszthato opciok kozul mindossze egyetlen egynek van ertelme. Ez olyan, mintha elmennel egy barba es azt mondanak, hogy egy ures meg egy teli korso kozul valaszthatsz. Nyilvan nem valasztanad az ures korsot, mert annak nincs ertelme, cserebe felesleges es ertelmetlen idohuzas az egesz.
Bizonyos interakcioknal ugyanez van. A user 99.9%-ban csak letolteni akar, akkor minek feldobatni meg egy kerdest, vagy megbonyolitani az eletet azzal, hogy a bongeszo szegenyes eszkozkeszletevel kinlodjon feleslegesen, mikor egybol fel is lehet ajanlani letoltesre a cuccot.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
A user 99%-a nem csak letölteni akar tapasztalatom alapján, hanem megnézni gyorsan egy pdf-et is. Meg egyéb mást. A megtekintésért letölteni, aztán meg megnyitni, aztán meg letörölni a fájlt elég körülményes.
- A hozzászóláshoz be kell jelentkezni
Attol fugg, mi a use-case, kik a userek, es mit csinalnak epp az oldalon. Ez nagyon-nagyon erosen alkalmazasfuggo. Nem tudjuk a kontextust, ne iteljunk elsore.
Csak hogy peldat mondjak: ott van a CinemaCity online jegyveteli rendszere, lenyegeben egy baszott nagy QR kod. Senki nem akarja a jegyet elolvasni (legalabbis vasarlas utan rogton nem), kitorolni meg aztan foleg nem, en ott siman force letoltetnem. A userek 99%-a egybol masolja telefonra es megy vele a moziba.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
Önmagadnak ellentmondasz. Ezt írtad most:
"Attol fugg, mi a use-case, kik a userek, es mit csinalnak epp az oldalon."
Vagyis hogy had döntse el, mert attól függ ki mit csinál. Én pont ezt írtam első körben, csak te megpróbáltad megmagyarázni ezzel:
"Mert van, amikor a usernek nincs szuksege a dontes lehetosegere.."
Vagyis hogy had ne ő döntse el. Nem igazán látom értelmét annak amit írsz a saját kontextusodban. Szerintem hagyjuk. Eszes rossz felé vitte el a szálat, mert nem nyit senki sem tabot, lásd a feljebbi másik válaszom.
- A hozzászóláshoz be kell jelentkezni
Nem, a "had ne o dontse el" az ennel restriktivebb, azzal azt mondod, hogy sosem kell dontesi lehetoseget adni. En azt mondom, hogy van olyan helyzet, amikor kell, van olyan helyzet, amikor nem, use-case fuggo. Irtam is ra peldat, hogy mikor nincs szukseg arra, hogy a user donthessen.
Illetoleg, a dontes lehetoseget nem csak a bongeszo funkcioira tamaszkodva lehet megvalositani. Ha egy PDF dokumentum link mellett ott van ket ikon, az egyik normal modon megnyitja, a masik pedig eroszakosan letoltesre ajanlja fel, akkor a valasztas lehetosege ugyanugy megvan, megis az altalad oly serelmesnek itelt modszer is hasznalva van.
Megegyszer modnom, nem tudjuk mi a use-case, de te mar eliteltel valakit azert, mert diktatorikusan banik a usereivel.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
Hogy tud megnézni úgy egy pdf-et, hogy nem töltötte le? :-)
- A hozzászóláshoz be kell jelentkezni
Ez komoly? :)
- A hozzászóláshoz be kell jelentkezni
ha komoly lenne, nem lenne smiley a végén
- A hozzászóláshoz be kell jelentkezni
:)
- A hozzászóláshoz be kell jelentkezni
1) A böngésző beépített pdf megjelenítőjével
2) Szőrszálhasogathatunk, hogy az is technikailag egy letöltés valami temp fájlba, de ne szőrszálhasogassunk. Letöltés az, amikor szándékoltan a letöltés mappában megjelenik a fájl.
- A hozzászóláshoz be kell jelentkezni
láttad a smileyt?
Letöltés az, amikor az adatokat a távoli helyről a böngésző letölti a helyi gépre.
Az mindegy, hogy utána fájlba írja, vagy ő maga megjeleníti.
Erre utaltam. No, mindegy, úgy látszik, nem jött át.
- A hozzászóláshoz be kell jelentkezni
Bocsi, nem szoktam figyelembe venni, ahány ismerősöm annyiféleképp használja, van aki mondat végi pont helyett kábé. Amúgy ne vedd túl komolyan amit írtam, oda is illett volna egy mosolygó fej.
- A hozzászóláshoz be kell jelentkezni
Érdekes ezt olvasni a PDF.js-es böngésző topikjában... Egy olyan embertől, aki a fogyatékkal élők ilyen vagy olyan hátrányos megkülönböztetése miatt szokott panaszkodni...
:)
- A hozzászóláshoz be kell jelentkezni
Fogalmam sincs, hogy a fogyatekkal elok hogy jonnek ide, de ha mar iderangattuk szerencsetleneket: a konkret temaban bizonyos esetekben pont, hogy jo lenne, ha egy bena/alulfunkcionalo kezu embernek nem kellene annyit kattintania, hogy lementhesse a PDF-et. Akar egy kulon gombot neki, ami egybol letoltesre ajanlja fel a fajlt.
De ettol fuggetlenul erdekelne a gondolatmenet, ahogy eljutottal idaig.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
"Azert, mert sok bongeszo mindenkeppen inkabb megnyitja a fajlt, de cserebe nem ad lehetoseget menteni."
Melyik ez a sok böngésző? Chrome beépített PDF megjelenítőjében ott a letöltés ikon, firefoxéban hasonlóképp. IE/Edge-t most nem tudok tesztelni.
- A hozzászóláshoz be kell jelentkezni
A probléma a chrome pdf megjelenítőjével az, hogy ha rákattintasz a mentés ikonra, akkor mégegyszer megpróbálja letölteni a szerverről az adott dokumentumot hogy elmentse. Ezt pl az unicredit-spectra nem szereti.
- A hozzászóláshoz be kell jelentkezni
Én nem így tapasztalom. Épp most teszteltem rá. Megnyitottam egy teszt pdf-et chrome-ban, majd ott a letöltés ikonra böktem jobb felül, és még a jobbklikk -> save as opciót is megnyomtam. A webszerver logjába össz egy request került.
- A hozzászóláshoz be kell jelentkezni
Én csak tippeltem az okra, ezek szerint tévedtem.
A tapasztalt hibajelenség az, hogyha a fent nevezett oldalon megnéz a felhasználó egy számlakivonatot a Chrome beépített pdf nézőjével, rákattint a mentés-re akkor a filerendszeren egy nulla byte hosszú file keletkezik.
- A hozzászóláshoz be kell jelentkezni
Végre javították és 55-ös verzióra becsorog elvileg, tehát olyan 4-5 hónap múlva:
- A hozzászóláshoz be kell jelentkezni
Valóban, működik. Szerk.: úgy fest, másik domainre mutató linkeknél nem.
:)
- A hozzászóláshoz be kell jelentkezni