2012-08-26 16 views
5

Olası Çoğalt:Dosya seçiciyi JavaScript ile program aracılığıyla nasıl açabilirim?

<input type='file'>​ 

<script> 
    $(function() { 
     $('input').click(); 
    }); 
</script> 

yukarıdaki gelmez:
In JavaScript can I make a “click” event fire programmatically for a file input element?

Ben safça (here keman bakınız) JavaScript ile programlı dosya seçiciyi açmak için aşağıdaki denedi Çalışıyorum JavaScript ile bir input type='file' dosya seçicisini nasıl açabilirim?

+0

Elbette, jQuery? –

+0

@JaredFarrish: jQuery veya değil, umrumda değil. – Randomblue

+0

Güvenlik nedeniyle, bunu yapamazsınız. – SLaks

cevap

8

Güvenlik nedeniyle, iletişim tetikleyemez. Bunu, örneğin, başka bir elemanın bir tıklama ile iletişim tetikleyebilecek:

$(function() { 
    $(".someElement").click(function() { 
     $('#f').click(); 
    }); 
}); 

Working example.

5

Güvenlik önlemi olarak, bu gibi iletişim kutularını yalnızca bir tıklama olayı (herhangi bir öğe üzerinde) gibi bir kullanıcı girdisinde açabilirsiniz. Sayfa yüklemesi gibi rastgele açamazsınız. Bazı kullanıcıya bir tepki olayı tetikleyen gibi olmadıkça

http://jsfiddle.net/fEBFp/2/

+2

Sanırım konsolda güvenlik istisnası olmaması biraz garip. –

+3

Kullanıcı girişine yanıt vermek, ince çapraz tarayıcıyı çalıştırıyor, sadece bir şey var. Dosya girişinde 'display: none' veya 'görünürlük: hidden' varsa, iletişim eski tarayıcılarda açılmayabilir. Burada bir 'fiddle' (http://jsfiddle.net/ult_combo/fEBFp/3/) 'display'/'visibility' CSS olmaksızın alternatif maskeleme örneği kullanıldı. –

+0

Teşekkürler. Chrome'da dosya girişini şimdi bir 0x0px div’üne koydum. Firefox'ta dosya girişini belgeye eklemek bile gerekli değil. – Robert

İlgili konular