HTML-Eingabetyp="Datei" in Google Chrome zeigt kein Popup-Fenster

8

Ich habe ein Problem mit dem HTML-Tag <input type="file" /> in Google Chrome.

Die Schaltfläche 'Durchsuchen' erscheint auf der Seite wie erwartet, aber wenn ich darauf klicke, um eine Datei auszuwählen, öffnet sich das Popup-Dialogfenster des Browsers überhaupt nicht.

Ich habe meine Form und in Firefox getestet und funktioniert korrekt. Irgendwelche Ideen, was falsch ist und wie kann ich es beheben?

Hier ist auch der Code:

%Vor%     
Lykos 07.03.2014, 08:54
quelle

5 Antworten

3

Es gibt keinen Grund, dass dies in Chrome nicht funktionieren sollte. Haben Sie versucht, die Markierung in dem Beispiel, das Sie uns gegeben haben, in eine HTML-Datei zu kopieren und diese zu öffnen? Funktioniert es? Es sollte, es sei denn, es gibt ein Drittanbieter-Plugin oder eine Erweiterung, die es stoppt.

Es könnte sein, dass Sie an anderer Stelle eine Markierung haben, die dieses Problem verursacht; vielleicht eine Ebene über dem Eingabefeld, die das click-Ereignis abfängt, bevor es sich auf den "browse" -Button zu bewegen kann?

    
Philip Bennison 07.03.2014, 08:57
quelle
3

Es kann zwei Gründe dafür geben, dass die Eingabetypdatei nicht funktioniert.

  1. Die Eingabe des Dateityps ist als Sichtbarkeit: Versteckt formatiert. Um die Eingabe auszublenden, verwenden Sie die Opazität: 0.
  2. Eventuell gibt es ein Klickereignis für das Dokument oder ein Elternelement, das dem Klicken auf das Eingabe-Tag widersteht.
Shahrukh Azeem 08.07.2015 10:03
quelle
2

In meinem Fall war das Problem wie folgt:

  1. Das gesamte Dokument hatte einen "on click handler"
  2. Innerhalb des Click-Handers löschte der Code die gesamte Propagierung mit

    gibt false zurück;

Das Entfernen dieser Return-Anweisung löste das Problem mit input = file.

    
Mitja Gustin 27.09.2017 12:01
quelle
0

Ich hoffe, es hilft jemandem; In meinem Fall war das Problem, dass ich event.preventDefault() auf das gesamte Dokument angewendet hatte, weil ich meinen eventListener auf das gesamte Dokument angewendet hatte:

%Vor%

Ich wollte nur, dass meine benutzerdefinierten Ereignishandler auf ein div und nicht auf das gesamte Dokument angewendet werden, und speziell wollte ich nicht, dass meine Ereignishandler die Formularereignisse überschreiben, die in einem anderen div eingerichtet sind. Also habe ich den Umfang meiner eventListeners auf das 'visualizationContainer' div beschränkt:

document.getElementByID('visualizationContainer').addEventListener( 'click', onMouse, false );

Das hat alles repariert.

    
Mark Scott Lavin 04.01.2018 17:39
quelle
-1

Sie müssen es so verwenden

%Vor%     
ventsi.slav 07.03.2014 08:59
quelle

Tags und Links