Mam plik wejściowy przeglądarki plików <input type="file" id="browse-button"/>
w moim kodzie HTML.JavaScript przechwycony "Ctrl + O" nie otwiera mojego okna dialogowego pliku
Mam inny przycisk z identyfikatorem choose-file-button
, który po kliknięciu wywołuje document.getElementById("browse-button").click();
. Po kliknięciu tego przycisku kliknie on odpowiednio #browse-button
i otworzy się okno dialogowe pliku.
Teraz wziąłem kod this answer przechwycić Ctrl+O
przyciśnięcie i otworzyć okno dialogowe pliku, więc mam to:
$(window).bind('keydown', function(e)
{
if (e.ctrlKey || e.metaKey)
{
switch (String.fromCharCode(e.which).toLowerCase())
{
case 's':
e.preventDefault();
// doesn't matter for this question
return false;
case 'o':
e.preventDefault();
document.getElementById("choose-file-button").click();
return false;
}
}
return true;
});
Jak widać, kiedy przechwycić Ctrl+O
klikam na mój przycisk #choose-file-button
, który wywołuje document.getElementById("browse-button");
w swojej obsadzie onclick
. W tym module obsługi kliknięć wstawiłem punkt przerwania, a po naciśnięciu klawisza Ctrl+O
osiągnięto ten punkt przerwania. Jednak okno dialogowe pliku nigdy się nie wyświetla.
Poprzez debugowanie, I okazało się, że jeśli umieścić alert(...);
po linii #choose-file-button click()
, wówczas pojawia się alert i normalną stronę dialogowe „Otwórz plik” pojawia się (nie mój dialogowe pliku). Jeśli jednak nie mam tego alertu, nic się nie pokazuje.
Czy to błąd? Jak mogę to naprawić i wyświetlić okno dialogowe pliku przechwycone Ctrl+O
?
Edytuj: Właśnie testowałem w przeglądarce Chrome i działa idealnie. Jednak nadal nie działa w Firefoksie.
próbowałeś użyciu JQuery do uruchomienia kliknięcie '$ ("# wybierać-file-przycisk"). kliknij() zamiast używać getElementById? – Osuwariboy
@Osuwariboy mam teraz, ale to niczego nie zmienia. – Jashaszun
Twój problem wydaje się podobny do tego: [przesuń ctrl + s] (http://stackoverflow.com/questions/14860759/cant-override-ctrls-in-firefox-using-jquery-hotkeys). Może mógłbyś spróbować swoich sugestii? – Osuwariboy