[DHTML] Safari & hidden layer file input

Pagina: 1
Acties:

  • .Johnny
  • Registratie: September 2002
  • Laatst online: 19-03 12:22
Ik wou even wat ervaring die ik onlangs op heb gedaan met jullie delen:

Ik had een tijdje geleden een probleem met het posten van form data met
safari browsers. het blijkt dat wanneer een form op een hidden layer
staat de <input type="file"> niet gepost wordt(wordt leeg).

Een workaround die niet werkt, is via een submit button eerst het form
weer op 'show' zetten en dan submitten. kennelijk checkt safari of het
showen in hetzelfde proces gebeurt.

Een workaround die wél werkt, showt eerst de layer weer en post daarna
het form via een setTimeout() met 1 miliseconde: setTimeout
('document.form.submit()',1);

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Bij een hidden form kan er toch ook nooit een bestand gekozen worden? :?

Intentionally left blank


  • .Johnny
  • Registratie: September 2002
  • Laatst online: 19-03 12:22
err... je kan natuurlijk eerst dat form laten zien en daarna het form op hidden zetten. Bijvoorbeeld in een client side wizard achtige DHTML toepassing.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Klopt, ik ben dergelijke dingen met safari ook al vaker tegengekomen. Safari heeft (volgens mij) een soort optimalisatie-slag, die zorgt dat de hidden dingen on the fly worden geparst en in de dom-tree opgenomen worden (tenminste, da's mijn interpretatie). Je kunt dit heel eenvoudig testen door een iframe in een hidden block te zetten. Pas wanneer de block weer op 'block' gezet wordt (8)7), wordt het iframe geladen. Dat ze ook weer uit de dom-tree gehaald worden ben ik nog niet tegengekomen, maar zal ongetwijfeld related zijn :)

Een eenvoudige workaround is in plaats van display:hidden een height:0 en width:0 op te geven, dan treedt dit probleem niet op.
edit:
of, indien mogelijk, visibility:hidden

[ Voor 7% gewijzigd door drm op 10-01-2005 17:14 ]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • .Johnny
  • Registratie: September 2002
  • Laatst online: 19-03 12:22
Nee, dat werkt niet. bij mij trad dit op wanneer de <form> in een <div> stond die ik op visibility:hidden zette. volgens mij is het eerder dus een security setting van safari. Ook een aanwijzing daartoe is dat het niet opgelost is wanneer je binnen 1 event de form tevoorschijn tovert en post, maar je daar 2 aparte events voor moet forcen.

[ Voor 4% gewijzigd door .Johnny op 11-01-2005 09:28 ]