javascript - 传递给函数的 Firefox JavaScript 参数未定义
问题描述
我看到以前就该主题提出的一些问题,但要么没有得到回答,要么我不明白答案。
为什么以下内容适用于除 FireFox 之外的所有浏览器?当onplay()
事件触发时,传递的参数是undefined
.
<html>
<head><title></title>
</head>
<body>
<audio id="audioplayer" name="player1" preload="none" onplay="audioStarted(audioplayer[0]);" src="http://kerkradio.co.za:8000/audio/beste-luisteraar.mp3?a=1" controls> </audio><br/>
<audio id="audioplayer" name="player2" preload="none" onplay="audioStarted(audioplayer[1]);" src="http://kerkradio.co.za:8000/audio/beste-luisteraar.mp3?a=2" controls> </audio><br/>
<audio id="audioplayer" name="player3" preload="none" onplay="audioStarted(audioplayer[2]);" src="http://kerkradio.co.za:8000/audio/beste-luisteraar.mp3?a=3" controls> </audio><br/>
<audio id="audioplayer" name="player4" preload="none" onplay="audioStarted(audioplayer[3]);" src="http://kerkradio.co.za:8000/audio/beste-luisteraar.mp3?a=4" controls> </audio><br/>
</body>
<script>
function audioStarted(thePlayer) {alert(thePlayer.src);}
</script>
</html>
解决方案
它完全有效(我猜它可能)是由于 javascript 将 id 奇怪地提升到全局范围(使 getElementById 奇怪地多余)而导致的异常。Firefox 将这段代码复制回来是完全正确的,如果它真的适用于所有其他浏览器,我会感到惊讶
尝试传递关键字而不是那个 audioplayer[n] jive - 你的情况是旨在处理this
的那种情况this
推荐阅读
- typescript - 省略具有泛型类型的类的属性
- powershell - Hyper-V:制作一个脚本,提取计算机名称的最后 6 位,将其转换为十六进制,然后插入为 VM 的 MAC 地址(最后 8 位)
- windows - Gitian windows 编译不工作(时间错误)
- python - PyTorch 和 TensorFlow 对象检测 - 评估 - 对象类型
不能安全地解释为整数 - javascript - 使用 next 方法创建一个迭代器,该方法在调用 .next 时返回数组的每个值
- java - ETL 设计:我应该使用什么队列而不是我的 SQL 表并且仍然能够并行处理?
- sql-server - SQL 中连接、实例和会话之间的区别
- c++ - std::accumulate 可以抛出吗?
- excel - 如何在 VBA 中找到控件的父用户窗体
- javascript - Await 仅在异步函数中有效