Se i file si trovano tutti nello stesso server che ospita la pagina da cui gli utenti scaricano puoi caricare tutti i file nella memoria ram dell'interprete con un ciclo + ajax (compatibile anche coi file binari) e creare un file zip con una delle tante librerie js esistenti in rete ad hoc (ad esempio questa: http://jszip.stuartk.co.uk/) e restituirlo come data uri scheme (ben supportato da tutti i browsers). Ma:
  • È molto difficile da realizzare
  • È abbastanza dispendioso di memoria dell'interprete
  • È l'unica possibilità che hai
  • Probabilmente davvero non ne vale la pena


Se riesci a farlo è cmq pienamente crossbrowser.

In bocca al lupo