在我的javascript代码中,Firefox不识别浏览文件的双短键



我想要Alt+O短键浏览我的网页中的文件。"Keydown"事件可以完美地处理这个问题在chrome浏览器,但在Firefox什么也不会发生,除非我做一个点击页面。我的问题有解决办法吗?

$(document).ready(function(){
$("body").keydown(function(e){
var keyCode = (e.which) ? e.which : window.e.keyCode;
if(e.altKey)
if(keyCode == 79){ //Alt+O = openFile
e.preventDefault();
$("#xmlFile:hidden").trigger('click')
}

});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="file" id="xmlFile" style="display: none;" >

不能这样使用触发器这个答案可以帮助你理解。jQuery触发器不能在Firefox上工作

试试这个:

$(document).ready(function(){
$("body").keydown(function(e){
var keyCode = (e.which) ? e.which : window.e.keyCode;
if(e.altKey)
if(keyCode == 79){ //Alt+O = openFile
e.preventDefault();
document.getElementById('file-input').click();
}

});
});
<input id="file-input" type="file" name="name" style="display: none;" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

最新更新