1

私は自分のウェブサイトでいくつかのビデオを表示しており、ビデオの 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 のエラー メッセージ

識別子は数値リテラルの直後から始まります [このエラーでブレーク]

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)
?>
}
4

1 に答える 1

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)
    ?>
}
于 2012-02-12T02:04:55.680 に答える