HTML5 音频播放器:如何通过 HTML 元素而不是 div ID 来 select?
HTML5 Audio Player: How to select by HTML elements instead of div ID's?
成为 html5 玩家,我正在 "from divs with id's" 向 "simple html elements" 移动。
旧情况(有效)
<audio src="track1.mp3" id="audio"></audio>
<controls>
<play id="play" style="display:none">PLAY</button>
<pause id="pause" style="display:none">PAUSE</button>
<div id="progress"><div id="bar"></div></div>
</controls>
Javascript 通过id为
的div获取元素
var myAudio = document.getElementById('audio');
var play = document.getElementById('play');
var pause = document.getElementById('pause');
... etc
期望的情况(不能完全工作)
<audio src="track1.mp3"></audio>
<controls>
<play style="display:none">PLAY</play>
<pause style="display:none">PAUSE</pause>
<progress><bar></bar></progress>
</controls>
已更新 Javascript,在@grateful 和 @Nathan Montez 的帮助下部分
var myAudio = document.getElementsByTagName('audio')[0];
var play = document.getElementsByTagName('play')[0];
var pause = document.getElementsByTagName('pause')[0];
... etc
新版本进度条不能用了!我们忽略了什么?谢谢!
document.getElementsByTagName('audio')
将 return 一个数组,即使它的长度只有 1。你需要这样做:
document.getElementsByTagName('audio')[0];
将评论移至答案:
从标签中删除双引号。
目前是<progress"></progress>
它应该显示为 <progress></progress>
更新:
我认为您的问题的原因是元素解析为 HTMLUnknownElement
s。因此,您可能需要使用 Google Polymer 之类的东西来提供您正在寻找的功能。我认为您不能像这样直接使用未知元素,因为它们与原生 HTMLElement 对象不同 API。
成为 html5 玩家,我正在 "from divs with id's" 向 "simple html elements" 移动。
旧情况(有效)
<audio src="track1.mp3" id="audio"></audio>
<controls>
<play id="play" style="display:none">PLAY</button>
<pause id="pause" style="display:none">PAUSE</button>
<div id="progress"><div id="bar"></div></div>
</controls>
Javascript 通过id为
的div获取元素var myAudio = document.getElementById('audio');
var play = document.getElementById('play');
var pause = document.getElementById('pause');
... etc
期望的情况(不能完全工作)
<audio src="track1.mp3"></audio>
<controls>
<play style="display:none">PLAY</play>
<pause style="display:none">PAUSE</pause>
<progress><bar></bar></progress>
</controls>
已更新 Javascript,在@grateful 和 @Nathan Montez 的帮助下部分
var myAudio = document.getElementsByTagName('audio')[0];
var play = document.getElementsByTagName('play')[0];
var pause = document.getElementsByTagName('pause')[0];
... etc
新版本进度条不能用了!我们忽略了什么?谢谢!
document.getElementsByTagName('audio')
将 return 一个数组,即使它的长度只有 1。你需要这样做:
document.getElementsByTagName('audio')[0];
将评论移至答案:
从标签中删除双引号。
目前是<progress"></progress>
它应该显示为 <progress></progress>
更新:
我认为您的问题的原因是元素解析为 HTMLUnknownElement
s。因此,您可能需要使用 Google Polymer 之类的东西来提供您正在寻找的功能。我认为您不能像这样直接使用未知元素,因为它们与原生 HTMLElement 对象不同 API。