代码之家  ›  专栏  ›  技术社区  ›  E. Normous

Chrome无法使用PHP/JS生成多个JW播放器

  •  2
  • E. Normous  · 技术社区  · 11 年前

    我很难让Chrome用PHP和Javascript生成多个JW播放器。仅此一提,Opera/Pale Moon/Firefox中的一切都很好。这是 how it's supposed to look ,这是 how it renders in Chrome 有趣的是,当我将鼠标悬停在JW播放器应该所在的地方时,光标变为“指针”,我实际上可以播放文件,只是播放器本身是不可见的。

    我有多个音频文件,它们的所有信息(文件名、路径、描述等)都在MySQL数据库中。因此,while循环为数据库中的每个文件生成单独的DIV,并将其ID标记设置为文件名值。以下是代码(我省略了MySQL查询和其他所有内容,因为这是麻烦的部分):

    <?php
    while ($row = mysql_fetch_array($query)){
        $fullpath = $row['fileFolder'].$row['fileName']; ?>
        <div id="<?php echo $row['fileName']; ?>">Loading the player...</div>
            <script type="text/javascript">
            var divName = <?php echo json_encode($row['fileName']); ?>; //since each DIV id has to be different
            var fullpath = <?php echo json_encode($fullpath); ?>;
                jwplayer(divName).setup({
                    file: fullpath,
                    width:300,
                    height:30
                });
            </script>
        <?php
            echo "<p class='descriptionAudio'>".$row['description'];
            echo "<br>";
    } ?>
    

    Chrome显示的源代码与工作浏览器相同,而Chrome的开发工具显示:

    There was an error while handling a listener: Error: SyntaxError: DOM Exception 12 function (a){n.playerReady(a);f.css.unblock()} jwplayer.js:3
    42 Uncaught Error: SyntaxError: DOM Exception 12 
    

    顺便说一句,当我手动设置DIV ID值时,一切都很好。

    1 回复  |  直到 11 年前
        1
  •  1
  •   Community Tales Farias    7 年前

    您说,当您手动指定ID,而不是像此行所示那样基于文件名时,它就起作用了:

      <div id="<?php echo $row['fileName']; ?>">Loading the player...</div>
    

    这使得来自数据库的ID之一可能不符合 requirements for a well-formed DOM ID.

    尝试查找使用的无效字符,或者使用增量数字ID字段(前缀为 file_ )相反。