我很難讓Chrome使用PHP和Javascript生成多個JW播放器。只要提到它,Opera/Pale Moon/Firefox中的一切都可以正常工作。這裏的how it's supposed to look,這裏是how it renders in Chrome。有趣的是,當我將鼠標懸停在JW玩家所在的地方時,光標變爲「指針」,我可以真正播放該文件,只是玩家本身不可見。Chrome無法使用PHP/JS生成多個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值時,一切正常。
那麼,這個ID很可能是罪魁禍首。什麼樣的值可以'<?php echo $ row ['fileName']; ?>有? – 2013-03-09 14:43:55
由於這些是音頻文件,它保存着諸如「14501_1_1.mp3」,「rdj201.mp3」等的值。也許我應該去掉'.mp3'位? – 2013-03-09 14:49:19
@E應該沒問題:[DOM ID中允許使用哪些字符?](http://stackoverflow.com/q/1077084)中有任何重複項或其他更多禁止使用的字符?就像說'()| {}'.... – 2013-03-09 14:50:57