самое простое делать что то с примерением onclick="window.open(. у меня так радио плеер. Там по проще, потому что радиоплееру не нужно работать с базой
именно, у нас тут таким занимался Sjen, у него можно еще что то найтине плеер должен быть на аяксе
есть такая технология pjax, с ее помощью можно легко это сделать
скачать можешь тут. там же есть документация
подключаешь библиотеку и пишешь что-то вроде
<script> $.pjax.defaults.timeout = 10000; $(document).ready(function(){ $(document).pjax(' a:not(.ajax-modal, [href*=add], [href*=auth], [href*=register])', '.content_row_pjax'); /*чтобы не реагировал на модальные окна, при добавлении контента(лучше убрать)*/ $('body').on('click', 'a.ajax-modal', function(e){ /* чтобы модальные окна в подгруженном контенте работали */ $(this).attr('rel', 'gal').nyroModal(); e.preventDefault(); }); var pjax = $('.content_row_pjax'); var loading = $('<div class="loading"></div>'); /* при загрузке накладываем, стили отдельо напишешь */ $(document).on('pjax:beforeSend', function() { /* перед отправкой */ pjax.prepend(loading); }); $(document).on('pjax:popstate', function() { /* вперед назад */ pjax.find('.loading').remove(); }); $(document).on('pjax:end', function() { /* выводим контент */ /* тут какой-то код который хочешь чтобы выполнился по окончанию загрузки */ pjax.find('.loading').remove(); }); }); </script>
а сам код плеера выводишь отдельно, за пределами контейнер.
вроде ничего не забыл. По крайней мере у меня работал))
также советую изучить локальные хранилища чтобы плеер сразу в нескольких окнах не играл