【问题标题】:input type file in OperaOpera中的输入类型文件
【发布时间】:2011-05-09 12:31:07
【问题描述】:

我尝试在文件输入上触发 onkeydown、onkeypress 和 onkeyup 事件(例如,当元素处于焦点且按下某个键时,不会触发事件),但它们在 Opera 中不起作用。使用 jQuery 触发 'click' 也不起作用(例如 $('#myFileinput').Click() 或 $('#myFileinput').trigger('click'))。

有没有办法在 Opera 中触发这些事件?

这是我的代码:

 <input type="file" class="foo" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
<script type="text/javascript">
    debugger;
    window.onload = onPageLoad;
    function onPageLoad() {

        var input = $(".foo");
        debugger;
        input.keydown(function () {
            //doesn't work in Opera
            alert("keydown");
        });

        input.keypress(function () {
            //doesn't work in Opera
            alert("keypress");
        });

        input.keyup(function () {
            //doesn't work in Opera 
            alert("keyup");
        })
    }

    window.onkeydown = function () {
        //when the focus is on the input the code bellow doesn't fire
        alert("window key down")

    }

</script>

【问题讨论】:

    标签: javascript jquery input opera keydown


    【解决方案1】:

    由于安全策略,Opera 在输入 type=file 上触发的事件受到限制。此外,在新的 Opera 版本中,专注于输入会弹出一个文件对话框,因此无论如何都不会在输入上触发任何关键事件。如果需要知道值何时发生变化,请监听 change 事件。

    【讨论】:

    • 另请注意,当开发者工具打开时,FileDialog 在opera 上不起作用。
    猜你喜欢
    • 2011-05-16
    • 2020-03-31
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    • 2018-06-27
    相关资源
    最近更新 更多