Jquery trigger klicken Sie auf funktioniert nicht auf safari-Browser in mac, Ipad & Iphone
Ich versuche trigger mit einem click-Ereignis input type="file" in der klicken Sie auf eine andere Schaltfläche.
Demo: http://jsfiddle.net/Y85g6/
Es ist in Ordnung, die in allen Browsern außer safari-Browser in mac, Ipad & Iphone.
Gibt es irgendeinen trick um diese Aufgabe zu erfüllen?
möglich, Duplikat der In JavaScript kann ich ein "Klick" - Ereignis, Feuer programmatisch für ein file-input-element?
dann, wie man eine angepasste Datei-browse-Funktionalität.
Entweder gar nicht, oder machen es mit einer Flash-basierten Lösung wie SWFUpload.
dann, wie man eine angepasste Datei-browse-Funktionalität.
Entweder gar nicht, oder machen es mit einer Flash-basierten Lösung wie SWFUpload.
InformationsquelleAutor Mandeep Pasbola | 2012-01-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Statt
trigger("click")
Sie können den folgenden code verwenden, welche erfolgreich funktioniert in allen Browsern:initEvent()
ist jetzt veraltet. DiejQuery.trigger("click")
hat den Vorteil, dass Sie die neueste verfügbare Schnittstelle zur Verfügung gestellt....InformationsquelleAutor Sattu
Eine alternative gefunden.
Nur die position der Eingabe
type="file"
über die benutzerdefinierte Schaltfläche, indem Sie die absolute Positionierung und die VerwendungjQuery fadeTo('fast',0)
um es zu verbergen.Wenn wir nun klicken Sie auf die benutzerdefinierte Schaltfläche Datei-browser-Fenster erscheint.
Seine Arbeit in allen desktop-Browsern, aber nicht in
iPhone
&iPad
da Sie erlauben nicht das hochladen einer Datei.InformationsquelleAutor Mandeep Pasbola
machen Sie das element sichtbar ist, als trigger-Ereignis funktioniert nicht auf versteckte Elemente im mac safari.
InformationsquelleAutor rajansoft1
Browser können Sie sehr pingelig, wenn es um JavaScript-Interaktionen mit Datei-Eingänge, aus Gründen der Sicherheit. Safari verhindert, dass Sie brennen alle click-events auf Sie. Einige Versionen von Chrome und Firefox haben auch diese Einschränkung. Dies wurde zuvor hier diskutiert.
InformationsquelleAutor ceejayoz
Ist es besser, den Einsatz von CSS statt JS ausblenden, element, weil es machen wird Ihr element als versteckte direkt.
InformationsquelleAutor Trython
Den folgenden Ansatz hat den trick für mich:
InformationsquelleAutor John Erck
Nicht sicher, ob jemand dies Lesen wird Frage mehr, aber ich hatte vor kurzem ein ähnliches Problem mit Safari, so dass ich dachte, ich würde Aktie.
Ersten, als ceejayoz erwähnt, siehe die Diskussion hier: In JavaScript kann ich ein "Klick" - Ereignis, Feuer programmatisch für ein file-input-element?
Die Lösung, die dann, wenn Sie nicht wollen, verwenden Sie die Schaltfläche positionieren, ist die Anzeige des Datei-input-Taste (entfernen Sie die "display:none;") und statt dessen verstecken Sie es mit "opacity:0;". Sie wahrscheinlich auch wollen, um die absolute position ist es so, es interagiert nicht mit anderen Elementen. Jedenfalls, auf diese Weise können Sie immer noch JS zu aktivieren, die Datei-Eingabe in allen Browsern.
InformationsquelleAutor Sam Grondahl
.klicken Sie auf() wird nicht unterstützt in Safari. Sattu Vorschlag sollte funktionieren. Aber Sie brauchen nicht Javascript für die Anpassung der input-Datei klicken.
Referenz: http://noypiscripter.blogspot.com/2014/04/simplest-cross-browser-custom-upload.html
InformationsquelleAutor noypiscripter
Bekam ich die einfachste Antwort für dieses
opacity : 0.01
auf Ihr input-file-elementInformationsquelleAutor eighteyes
einfach entfernen "display:none" und verwenden "visibility:hidden" und arbeitet cross-browser -.
InformationsquelleAutor PIYUSH JAIN
Laden Sie Ihr Skript in der Fußzeile. Ich hatte ein ähnliches problem schon ein paar mal und das war der trick.
InformationsquelleAutor Susan