使用javascript请求结果作为<进度>
Using javascript request result as value in <progress>
我正在尝试测量上传百分比,并将结果输出为纯文本和进度条或div宽度的值。
var request = new XMLHttpRequest();
request.upload.addEventListener('progress', function (event) {
if (event.lengthComputable) {
var percent = event.loaded / event.total;
var progress = document.getElementById('upload_progress');
while (progress.hasChildNodes()) {
progress.removeChild(progress.firstChild);
}
progress.appendChild(document.createTextNode(Math.round(percent * 100) + ' %'));
}
});
上面是我目前使用的一部分,它向id为"upload_progress"的div输出一个取整百分比+%。我还想将百分比输出到使用html5进度标记的进度条。类似于<progress id="progressbar" value="X" max="100"></progress>
,其中X来自javascript。
var bar = document.getElementById('progressbar')
bar.value = (Math.round(percent * 100))
我认为在适当的地方添加它会有所帮助,但它似乎根本不起作用。
很抱歉,如果这是显而易见的,我是javascript和编程的新手。我怎么能做到这一点?
感谢
首先,确保在DOM完全加载后获得元素。此外,您应该在progress
事件处理程序中设置进度百分比value
。
var progress, bar;
window.onload = function() {
progress = document.getElementById('upload_progress');
bar = document.getElementById('progressbar');
}
var request = new XMLHttpRequest();
request.upload.addEventListener('progress', function (event) {
if (event.lengthComputable) {
var percent = Math.round(event.loaded / event.total * 100);
bar.value = percent;
// other code here...
}
});
为什么要做这么多DOM操作?您只需设置相应div
的innerHTML
即可显示百分比文本。
// instead of this:
//while (progress.hasChildNodes()) {
// progress.removeChild(progress.firstChild);
//}
//progress.appendChild(document.createTextNode(percent + ' %'));
// You can do this:
progress.innerHTML = percent + ' %';
最后确保您正在呼叫request.open(...);
除此之外,我认为您的代码没有任何问题。
相关文章:
- 在<页眉>标签
- 如何更改<svg>标记为<img>用js标记
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- Ajax文件加载和<输入>文件加载
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- PHP进度条可以使用$_SESSION
- 链接所有<a>Meteor
- 在<输入类型=“;文件“/>
- Div根据<选择>菜单
- 动画CSS进度条
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 如何首先设置样式<td>表中包含在窗体中的元素
- 通过点击<李>在jQuery中
- 正在检测导航到<a name=“;最新主题”></a>
- 如何更改<选择>使用angularJS从控制器获得的值
- 通过具有IE<11
- <的自定义进度条;音频>并且<进度>HTML5元素
- 使用html<进度>使用Javascript/jQuery标记
- 如何使用<md进度线性>AngularJS MD中
- 使用javascript请求结果作为<进度>