标识符在数字文字后立即开始

时间:2012-02-12 02:03:42

标签: php javascript youtube youtube-api youtube-javascript-api

我在我的网站上展示了几个视频,并根据视频的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中的错误消息

  

标识符在数字文字后立即开始[Break On This   错误]

     

6BD2qnBozvE = document.getElementById('6BD2qnBozvE');

为什么会发生这种情况,我该如何解决?

编辑: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)
?>
}

1 个答案:

答案 0 :(得分:3)

您正在尝试分配名为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)
    ?>
}