2013-08-25 4 views
1

У меня небольшая проблема, и даже после одного часа попытки я не могу ее решить. Я использую JW Player для воспроизведения песни, и все работает правильно. Ниже игрока список песен, как только песня в списке нажата, я перезагружаю div, содержащий плеер с AJAX, и меняю javascript ниже этого div, чтобы воспроизвести новую песню. Диверс загружается правильно, но плеер не загружается после вызова AJAX. Нет ошибок, которые игрок не может создать во второй раз.Загрузка элемента javascript через AJAX

Вот код, который отображает игрока:

<div id="myDiv"><div id="myElement2">Loading the player...</div> 

<script type="text/javascript"> 
    jwplayer("myElement2").setup({ 
    file: "uploads/maid.mp3", 
     title: "Sintel Movie Trailer", 

     width: '100%', 
     skin: "six/six3.xml", 
     height:30 

    }); 
</script></div> 

Вот что происходит, когда новая песня загружена:

document.getElementById("myDiv").innerHTML=''; 
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 

А вот текст ответа из отдельных PHP-файлов:

<div id="myElement2">Loading the player...</div> 
<script type="text/javascript"> 
    jwplayer("myElement2").setup({ 
    file: "newfilename.mp3", 
     title: "file name", 

     width: '100%', 
     skin: "six/six3.xml", 
     height:30 

    }); 
</script> 

Но после того, как проигрыватель AJAX Call исчез и включен Появляется текстовая загрузка проигрывателя .... Вот URL, где находится игрок: contestlancer.com/davidicus

ответ

1

InnerHTML не оправдывает сценарий. Ваш php должен отвечать только на путь к музыкальному или видеофайлу, а затем повторно настроить для jwplayer.

Извините, но я был на ужин ;-)

Я думаю, что ваша странице не нужен Аякс, чтобы получить HTML Сурб от РНР, потому что ваша страница уже знает, какой файл музыки для воспроизведения.

Я не знаю точно о jwplayer, но попробуйте этот код вместо вашего оригинала loadXMLDoc().

function loadXMLDoc(str) { 
    jwplayer("myElement2").setup({ 
     file: str, 
     title: str, 
     width: '100%', 
     skin: "six/six3.xml", 
     height: 30 
    }); 
} 

title будет установлен в качестве имени файла, но ваша страница может быть в порядке.

+0

Привет Спасибо, что ответил, так что мне делать? Потому что через AJAX я не смогу поместить innerHTML в скрипт. –

1

Мой плохой после некоторых исследований я выяснил, что даже при том, что скрипт добавлен через вызов JS, он не выполняется, поэтому вы должны его выполнить. Таким образом, любой, кто имеет такую ​​же проблему, учтите, что скрипт, загруженный через AJAX, должен выполняться через функцию eval в javascript.

Так что в моем файле содержание AJAX Я дал тестирование идентификатора сценария, который:

<script type="text/javascript" id="testing"> 

А затем в функции JS Я сделал это:

if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("myDiv").innerHTML=''; 
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
    eval(document.getElementById('testing').innerHTML); 
    } 
    } 

Надеется, что это спасает кого-то другое» время. С уважением Ahmar

+0

Рад, что у вас это работает! – emaxsaun

Смежные вопросы