我正在尝试为HTML5音频元素制作加载栏(显示加载/缓冲的百分比).
对于视频标签,可以使用以下方法进行计算:
video.buffered.end(0) / video.duration
Run Code Online (Sandbox Code Playgroud)
但我无法使用音频标签.它只返回一个修复值.
任何的想法?
谢谢!
我正在使用AngularJS并且有一个表单,我希望在没有填写某些字段时禁用"提交"按钮.
标准方式似乎如下:
<form ng-app name="myForm">
<label>Name</label>
<input type="text" name="name" ng-model="form.name" required>
<input type="submit" ng-disabled="myForm.name.$invalid">
</form>
Run Code Online (Sandbox Code Playgroud)
但是,如果我从输入字段中省略模型,则验证不起作用,我的输入字段不需要任何模型(我使用ngUpload指令提交表单,因此它实际上发送到iframe中的表单操作) .
有没有解决方案,还是应该添加随机模型才能使验证工作?这似乎是一个糟糕的解决方法.
我正在尝试理解向事件监听器添加函数时的区别以及它具有的含义.
var buttons = document.getElementsByTagName('button');
for (i = 0, len = 3; i < len; i++) {
var log = function(e) {
console.log(i);
}
buttons[0].addEventListener("click", log);
}
for (i = 0, len = 3; i < len; i++) {
function log(e) {
console.log(i);
}
buttons[1].addEventListener("click", log);
}
Run Code Online (Sandbox Code Playgroud)
第一个按钮触发console.log3次,而第二个按钮仅触发一次.
在正常情况下向事件侦听器添加函数时,为什么以及应该使用什么?
我有两个模块,两个都需要访问共享阵列.我通过一个只包含以下内容的模块来解决这个问题:
sharedArray.js
module.exports = [];
Run Code Online (Sandbox Code Playgroud)
在模块中我使用它像这样:
module1.js
var arr = require('./sharedArray');
function addSomething() {
// Add something to arr
}
Run Code Online (Sandbox Code Playgroud)
module2.js
var arr = require('./sharedArray');
function doSomething() {
// Use arr for something
}
Run Code Online (Sandbox Code Playgroud)
这有效,但感觉不对(无用的空模块),我错过了一些明显的东西.
有更好的方法吗,或者这实际上是你如何解决它?
在Android股票浏览器上,我得到"在某些DOM元素(如a标签)上没有方法'点击'",而它在其他浏览器上工作.因此,我正在尝试创建一个条件来检查方法是否存在.这是我到目前为止所得到的:
<a href="test" id="test">test</a>
if (typeof document.getElementById('test').click === 'function') {
alert('it has');
} else {
alert('it has not');
}
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但我想知道它是否是正确的方法,如果它是跨浏览器兼容的.