[英]Null and placing of external javascript on html page
我之前有一个问题2音频声音,我想一次播放一个HTML5音频元素 ,得到了回答。 但是,我还有2个问题:
1)需要帮助来解释它:.bind(null,audios [i [)]中的null是什么意思? 我研究了null,但仍然感到困惑。
外部JS:
var audios = document.getElementsByTagName('audio');
for(var i=0; i<audios.length;i++) {
audios[i].onplay = pauseAllAudios.bind(null, audios[i]);
}
function pauseAllAudios(audio){
for(var i=0; i<audios.length;i++)
if(audios[i]!=audio) {
} audios[i].pause();
}
};
2)当我将其放在HTML页面中时:
<script type="text/javascript" src="js/audio.js"></script>
</head>
部分之前,javascript无法正常工作。 如果我把它放在</body>
部分之前,
javascript的作品。 javascript在这两个领域都不应该工作吗?
.bind()
函数为您提供了另一个函数,该函数在被调用时将使用传递给.bind()
的第一个参数作为this
的值。 你pauseAllAudios()
函数不使用this
,所以通过null
只是让this
成为null
。 确实可以是任何东西,但null
是一个很好的可读标记,表示“我的函数不需要this
绑定到任何东西”。
该代码在正文末尾有效,因为浏览器在构建DOM时会在遇到代码时运行它们。 当脚本位于头部分中时,包含您的音频元素的DOM部分尚不存在。 当它位于正文的末尾时,DOM(几乎)是完整的。
对于第二个问题,也许js / audio.js需要另一个javascript文件,然后将其放在头部时,它位于所需文件的前面,因此它不起作用,并且当您将它放在</body>
在所需的js文件之后加载,然后可以正常工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.