输入keydown不能在IE中工作!角

时间:2017-01-30 09:50:25

标签: javascript angularjs internet-explorer angularjs-directive

我有一个输入字段,用户可以在其中插入视频网址,按“输入”后,视频播放器会显示该视频。它在Chrome,Firefox,Edge中运行良好,但在IE 11中不起作用。只有当我打开IE开发人员工具然后返回页面按回车键时才会开始工作。

这是我的代码

HTML

app.directive('enterListener', function () {
return {
    restrict: 'A',
    link: function (scope, element, attr) {
        element.bind("keydown", function (event) {

            var validURL = function (str) {
                var urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;
                return urlregex.test(str);
            };

            if (event.which === 13) {
                    var videoUrl = ''+element.val()

                    //if url is valid then let's load it
                    if(validURL(videoUrl)) {
                        playApropriateType(videoUrl);
                    }
                    else{alert("Wrong URL")}
            }
        })
    }
}

Controller.js

meteor

});

有人能告诉我IE或我的代码有什么问题吗?

1 个答案:

答案 0 :(得分:0)

Angular支持load_number: move $t0, $a0 move $t1, $a1 #counter li $t2,0 while: beq $t2, $t1, end_load #read a double li $v0, 7 syscall #save in the stack swc1 $f0, ($t0) addi $t0, $t0, -4 addi $t2, $t2, 1 #Repeat j while ............ while_sum: beq $t2, $t1, end_sum lwc1 $f2, ($t0) add.d $f4, $f4, $f2 addi $t0, $t0, 4 addi $t2, $t2, 1 j while_sum end_sum: li $v0, 3 mov.d $f12, $f4 syscall 开箱即用的表单。 您是否在表单元素上尝试过ngSubmit?

ng-submit

其中<form ng-submit="myEnterFunction()"> <label for="videoUrlField">Paste your video URL here: </label> <input autocomplete="off" type="url" id="videoUrlField" enter-listener> </form> 可以是输入时处理/验证/ ...的控制器功能。在我看来,一个更清洁,更AngularJS的方式。

基本示例PLUNKER