我正在网站上显示几个视频,并在视频拥有YoutubeID之后生成代码。直到现在,它都可以正常工作,但是使用ID 6BD2qnBozvE,我的脚本将无法工作。
我的代码
function onYouTubePlayerReady(playerId) {
e3fqE01YYWs = document.getElementById('e3fqE01YYWs');
setTimeout(function(){
e3fqE01YYWs.setVolume(100);
e3fqE01YYWs.playVideo();
}, 750);
6BD2qnBozvE = document.getElementById('6BD2qnBozvE');
setTimeout(function(){
6BD2qnBozvE.setVolume(53);
6BD2qnBozvE.playVideo();
}, 750);
}
在Firebug中出现错误消息
为什么会发生这种情况,我该如何解决?
编辑:杰里米·类克斯(Jeremy Banks)解释了为什么,但我仍然不知道如何解决我的问题。
这就是我生成Javascript代码的方式:
function onYouTubePlayerReady(playerId) {
<?php
foreach($projectMusicUn as $music => $volume){
?>
<?php echo $music; ?> = document.getElementById('<?php echo $music; ?>');
setTimeout(function(){
<?php echo $music; ?>.setVolume(<?php echo $volume; ?>);
<?php echo $music; ?>.playVideo();
}, 750);
<?php
} //End of foreach($projectMusic as $music)
?>
}
最佳答案
您正在尝试分配给名为6BD2qnBozvE
的变量。这是不允许的; JavaScript中的变量名(标识符)必须以字母,下划线或$
开头。
只需将其重命名为video_6BD2qnBozvE
即可。在使用它时,您可能应该在定义之前添加var
关键字,以免创建全局变量。
var video_6BD2qnBozvE = document.getElementById('6BD2qnBozvE');
每次在生成的源代码中将其用作变量时,添加一个类似于
video_
的前缀:function onYouTubePlayerReady(playerId) {
<?php
foreach($projectMusicUn as $music => $volume){
?>
var video_<?php echo $music; ?> = document.getElementById('<?php echo $music; ?>');
setTimeout(function(){
video_<?php echo $music; ?>.setVolume(<?php echo $volume; ?>);
video_<?php echo $music; ?>.playVideo();
}, 750);
<?php
} //End of foreach($projectMusic as $music)
?>
}
关于php - 标识符在数字文字之后立即开始,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9245798/