html5-js以window.onload方式获取audio.duration的值为NaN,获取不到正确时长?

问题描述

js以window.onload方式获取audio.duration的值为NaN,获取不到正确时长?

window.onload=function time(){
var duration = document.getElementById("audio").duration;
document.getElementById("ss").innerHTML=duration;
}
通过服务器访问 获取到的值为NaN.
但如果通过页面上的一个按钮点击,以onclick事件,则能获取到准确时长,这是为什么,如何让页面加载后自动获取并显示音频时长?

解决方案

楼主用的火狐?火狐好像有这个问题

八、火狐获取duration出错问题

自己测试的时候有时可能因为网络加载慢的问题,火狐获取duration的时候获取不到,得到NaN,这样显示时间和进度条都会出错。所以我监听了canplay事件,当歌曲准备到可以被播放时,才进行获取duration和buffered等相关数据获取操作,貌似火狐没出现上述问题了。

http://dengo.org/archives/1048

解决方案二:

我使用IE以及chrome浏览器也出现类似问题,不知道问题出在哪。后来我使用jquery的$(document).ready(function(){}也还是解决不了这个问题

时间: 2024-12-03 02:04:36

html5-js以window.onload方式获取audio.duration的值为NaN,获取不到正确时长?的相关文章

C++获取文件哈希值(hash)和获取torrent(bt种子)磁力链接哈希值_C 语言

复制代码 代码如下: // CHash.h : header file #pragma once#include "sha1.h" #define        SIZE_OF_BUFFER         16000 class CHash{// Constructionpublic:    CString SHA1Hash(CString strHashFile);}; 复制代码 代码如下: // CHash.cpp : implementation file//#include

window.onload使用指南_javascript技巧

网页中的javascript脚本代码往往需要在文档加载完成后才能够去执行,否则可能导致无法获取对象的情况,为了避免这种情况的发生,可以使用以下两种方式: 一.将脚本代码放在网页的低端,这样在运行脚本代码的时候,可以确保要操作的对象已经加载完成. 二.通过window.onload来执行脚本代码. 第一种方式感觉比较凌乱(其实推荐使用),往往我们需要将脚本代码放在一个更为合适的地方,那么window.onload方式就是一个更好的选择.window.onload是一个事件,当文档加载完成之后就会触

判断window.onload是否多次使用的方法_javascript技巧

window.onload想必大家都有使用过吧,在窗口加载时执行,如果多次使用window.onload该如何判断呢?看看下面的代码 <script> function onloadCallback(){ //Todo } if (window.onload) { var onload_random = 'onload'+Math.random(); window[onload_random] = window.onload; window.onload = function (){ wind

判断window.onload是否多次使用的方法

  window.onload想必大家都有使用过吧,在窗口加载时执行,如果多次使用window.onload该如何判断呢?看看下面的代码

js-ie下使用jQuery获取对象并设置值出错,火狐下正常

问题描述 ie下使用jQuery获取对象并设置值出错,火狐下正常 调试时控制台不断输出错误信息: 获取的是input,input是在js中动态添加上的,鼠标移上去就会显示出来 为input绑定了一个"change"事件,但是在事件处理中,在ie下用属性选择器不能获取到对象并报错 求解??? ie9+jquery1.7 解决方案 你的IE是哪个版本的,可以使用高版本试下,如果高版本可以,表示你当前版本不支持这个功能 解决方案二: 换jquery1.9左右的版本试试,jquery2.0版本

springmvc-velocity页面怎么获取List&amp;amp;lt;Map&amp;amp;gt;中的值,就是获取list集合中的值

问题描述 velocity页面怎么获取List<Map>中的值,就是获取list集合中的值 @RequestMapping("my-team") public String myTeam(ModelMap model){ this.setLayout(LayoutType.STUDENT); String employeeCode= CurrentUserUtil.getCurrentUserName(); List list=employeePhotoService.qu

JS:window.onload的使用介绍_javascript技巧

1.最简单的调用方式 直接写到html的body标签里面,如: 复制代码 代码如下: <html> <body onload="func()"> </body> </html> 2.在JS语句调用 复制代码 代码如下: <script type="text/javascript"> function func(){--} window.onload=func; </script> 3.同时 调用

引用其它js时如何同时处理多个window.onload事件_javascript技巧

有时引用其它js时,其js却使用了window.onload事件,这样的话,引入的页面的onload事件就有可能执行不了,怎样才能两个都运行呢?除了将两个写到一块儿去的方法外,还有其他的方法 if(window.onload!=null){ eval("theOldFun="+window.onload.toString()); window.onload=function(){theOldFun();addReadResource();}; } eval()函数的作用: 它的功能是把

js window.onload 加载多个函数和追加函数详解

 本篇文章主要是对js window.onload 加载多个函数和追加函数进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 平时做项目 经常需要使用window.onload,   用法如下:   function func(){alert("this is window onload event!");return;}    window.onload=func;   或者如下:    window.onload=function(){alert("this is