Задался таким вопросом "Можно ли организовать прослушивание музыки на сайта без прерывания, когда серфишь по сайту?".
Переводить сайт на аякс не вариант, ибо работы будет очень много, как вариант оставить шапку а остальное тело страницы взять во фрейм, но что то терзают сомнения что будет работать. Или может есть какой нибудь флеш-плагин для такого?
У кого то есть какие нибудь варианты? Может кто-то что-то слышал о таком.
Присоединяюсь к вопросу, поставил мп3 плеер но проблема в том что при каждом переходе он вырубается, в вконтакте как то сделано что плеер не прекращает работы, да еще и сам музыку переключает на следующую
Axel-F (21.05.2013 / 16:13)
аякс, фрейм
Выбирайте
Хорошо бы удивить реализацию
NIKO, На джоне работать не будет
<html>
<head>
<script>
function showContent(link) {
var cont = document.getElementById('contentBody');
var loading = document.getElementById('loading');
cont.innerHTML = loading.innerHTML;
var http = createRequestObject(); // создаем ajax-объект
if( http ) {
http.open('get', link); // инициируем загрузку страницы
http.onreadystatechange = function () { // назначаем асинхронный обработчик события
if(http.readyState == 4) {
cont.innerHTML = http.responseText; // присваиваем содержимое
}
}
http.send(null);
} else {
document.location = link; // если ajax-объект не удается создать, просто перенаправляем на адрес
}
}
// создание ajax объекта
function createRequestObject() {
try { return new XMLHttpRequest() }
catch(e) {
try { return new ActiveXObject('Msxml2.XMLHTTP') }
catch(e) {
try { return new ActiveXObject('Microsoft.XMLHTTP') }
catch(e) { return null; }
}
}
}
</script>
<a href="#" onclick="showContent('page1.html')"; return false;">Page1.html</a><br />
<a href="#" onclick="showContent('page2.html')"; return false;">Page2.html</a>
<div id="loading" style="display: none">Идет загрузка...</div>
<div style="position:absolute;" class="dragable">
КОД плеера
</div>
<script>
function collectElems(){
var b=document.all||document.getElementsByTagName('*');
for(var i=0;i<b.length;i++){
addEvt(b[i],'mousedown',function(a){
if(mousePosition(a).t.className.match(/dragable/ig)){
dragElems(mousePosition(a).t,a)
}
})
}
}
collectElems();
function dragElems(b,c){
mousePosition(c,'p');
var i,x,y,l,t;
i=true;
x=mousePosition(c).x;
y=mousePosition(c).y;
l=b.offsetLeft;
t=b.offsetTop;
addEvt(b,'mouseup',function(){i=false});
addEvt(document,'mouseup',function(){i=false});
addEvt(document,'mousemove',function(a){
if(i){
mousePosition(a,'p');
b.style.left=l+mousePosition(a).x-x+'px';
b.style.top=t+mousePosition(a).y-y+'px'
}
})
}
function mousePosition(event,i){
var d,x,y,t,b;
d=document;
b=/*@cc_on!@*/false;
e=b?window.event:event;
if(i){b?e.returnValue=false:e.preventDefault()}
x=(b?d.documentElement.scrollTop:d.body.scrollTop)+e.clientX;
y=(b?d.documentElement.scrollLeft:d.body.scrollLeft)+e.clientY;
t=b?e.srcElement:e.target;
return{x:x,y:y,t:t}
}
function addEvt(a,b,i){
if(a.addEventListener){a.addEventListener(b,i,false)}else
if(a.attachEvent){a.attachEvent('on'+b,i)}else
{a['on'+b]=i}
}
</script>
</body>
</html>
в шапку если перенести некоторые участки кода будет работать? ведь шапка везде одна
Кэширование всему виной...
if (stristr(core::$user_agent, "msie") && stristr(core::$user_agent, "windows")) {
// Выдаем заголовки для Internet Explorer
header("Cache-Control: no-store, no-cache, must-revalidate");
header('Content-type: text/html; charset=UTF-8');
} else {
// Выдаем заголовки для остальных браузеров
header("Cache-Control: public");
header('Content-type: application/xhtml+xml; charset=UTF-8');
}
ну а если под веб версию? вырезать что не надо
Это чистый javascript без JS