繁体   English   中英

空并将外部javascript放置在html页面上

[英]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在这两个领域都不应该工作吗?

  1. .bind()函数为您提供了另一个函数,该函数在被调用时将使用传递给.bind()的第一个参数作为this的值。 pauseAllAudios()函数不使用this ,所以通过null只是让this成为null 确实可以是任何东西,但null是一个很好的可读标记,表示“我的函数不需要this绑定到任何东西”。

  2. 该代码在正文末尾有效,因为浏览器在构建DOM时会遇到代码时运行它们。 当脚本位于头部分中时,包含您的音频元素的DOM部分尚不存在。 当它位于正文的末尾时,DOM(几乎)是完整的。

对于第二个问题,也许js / audio.js需要另一个javascript文件,然后将其放在头部时,它位于所需文件的前面,因此它不起作用,并且当您将它放在</body>在所需的js文件之后加载,然后可以正常工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM