我有一个输入字段,用户可以在其中插入视频网址,按“输入”后,视频播放器会显示该视频。它在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或我的代码有什么问题吗?
答案 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