Bunun eski olduğunu biliyorum ve tüm bu çözümler gerçek değer ile tarayıcı güvenlik önlemleri etrafında kesmek.
Bununla birlikte, bugünden itibaren fileInput.click () öğesi geçerli Chrome'da (36.0.1985.125 m) ve geçerli Firefox ESR'de (24.7.0) çalışır, ancak geçerli IE'de (11.0.9600.17207) çalışmaz. Bir düğmenin üstünde opaklık 0 olan bir dosya alanını kaplamak işe yarar, ancak görünür tetikleyici olarak bir bağlantı öğesi istedim ve fareyle üzerine gelindiğinde alt çizgi herhangi bir tarayıcıda pek çalışmıyor. Sonra yanıp söner, muhtemelen tarayıcı fareyle üzerine gelme stilinin gerçekten geçerli olup olmadığını düşünür.
Ancak tüm bu tarayıcılarda çalışan bir çözüm buldum. Her tarayıcının her sürümünü test ettiğimi iddia etmeyeceğim veya sonsuza kadar çalışmaya devam edeceğini biliyorum, ancak şimdi ihtiyaçlarımı karşılıyor gibi görünüyor.
Çok basit: Dosya giriş alanını ekran dışına yerleştirin (konum: mutlak; üst: -5000px), çevresine bir etiket öğesi koyun ve dosya alanının kendisi yerine etikete tıklamayı tetikleyin.
Etiketin tıklama yöntemini çağırmak için bağlantının kodlanması gerektiğini unutmayın, bir etiket öğesinin içindeki metni tıkladığınızda olduğu gibi bunu otomatik olarak yapmaz. Görünüşe göre bağlantı öğesi tıklamayı yakalar ve etikete ulaşmaz.
Alanın ekran dışında olduğundan, geçerli olarak seçili dosyayı göstermek için bir yol sağlamadığını da unutmayın. Bir dosya seçildiğinde hemen göndermek istedim, bu benim için bir sorun değil, ancak durumunuz farklıysa biraz farklı bir yaklaşıma ihtiyacınız olacak.