2011-07-23 46 views
6

¿Hay algún artículo bueno o cómo puede un marco flotante o un marco trabajar de forma asíncrona con cada página? Tengo un div inferior/fijo envuelto en jquery para deslizar hacia arriba en el vuelo estacionario que contiene un reproductor de mp3. Hice referencia al jugador con un iframe. Me gusta mucho, pero ¿cómo puede seguir jugando sin una recarga en la página de actualización o navegación a otra página? Quiero que se solucione en la parte inferior de cada página y se reproduzca de forma continua sin actualizar. Traté de poner el iframe en cada página, pero aún así no funcionó. ¿Algunas ideas? Gracias.tener <iframe> trabajar de forma asíncrona

+5

Por los sonidos de su pregunta, no creo que entienda lo que significa "asincrónico" – zzzzBov

+0

??? Creo que estaba bastante claro. – Graham

Respuesta

2

Si tiene que permanecer en el navegador (no descargar una aplicación o leer arroyo en un reproductor de música/vídeo), la única manera debería ser en realidad no cambiar de página, y cargar contenido que debe cambiar con ajax o javascript (o tenerlo en un marco (i)).

Pero sería mucho más fácil hacer una página con sólo el lector y poner un enlace en su página web para abrirlo en otra pestaña:

<a href="/music-player.htm" target="musicPlayer">Text or what you want</a> 

Editar:

Así que con javascript sería el mismo resultado que ajax, pero eso significa no cambiar de página, por lo que para el SEO, si es algo importante, no es bueno.

Lo que quise decir con javascript fue, por ejemplo, si hace clic en el enlace "inicio" simplemente agregando dinámicamente un <script type="text/javascript" src="/homepage.js"></script> que modifica el contenido de la página (manteniendo el reproductor de mp3).

otherway, tal vez con una galleta si es posible con el jugador para saber por javascript:

  • a saber para wich archivo MP3 el jugador es
  • en el momento wich en el mp3 que juega el jugador es
  • para ir a un archivo mp3 especificado
  • ir a una hora determinada en un mp3
  • (y si es posible hacer una pausa en el reproductor, no debe ser la capacidad de saber si el jugador está jugando o no)

Al cambiar de página para pasar el buen rato (pero habrá tiempo para cargar la página y el reproductor de mp3 sin música).

O podría haber un reproductor de mp3 que puede ahorrar el tiempo en el que estamos, y comenzar en este momento en otra página (pero aún mientras cambia la página no suena durante varios segundos).

Con estos métodos, también existiría la cuestión de abrir varias páginas.

Editar:

Probé la manera con el contenido de la página en el iframe, que funciona bastante bien, pero necesita la membre para cambiar el modo de MP3.

Aquí es mp3.html (para poner en la carpeta raíz, si no es posible que necesitaría algunos cambios):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <title>MP3 Player</title> 
    <style type="text/css"> 
     html { 
     font-size: 100%; 
     } 
     body { 
      margin: 0; 
      padding: 0em; 
     } 
     #frame { width: 100%; height: 100%; border: none; } 
     #player { position: absolute; right: 20px; bottom: 20px; } 
    </style> 
    <script type="text/javascript"> 
     if ("onhashchange" in window) { 
      var h=''; 
      var command= false; 
     window.onhashchange = function(){ 
       if(location.hash==h) return; 
       command= true; 
       window.frames['frame'].location.replace(location.hash.replace(/^#/,"")); 
       h= window.location.hash; 
      } 
     } 
    </script> 
</head> 
<body> 
    <iframe id="frame" onLoad="if(this.src=='')return;if(command)command=!1;else window.location.replace(h='#'+window.frames['frame'].location.href.replace(new RegExp('^'+document.location.origin),''));document.title=window.frames['frame'].document.title;"></iframe> 
    <script type="text/javascript"> 
     document.getElementById("frame").src=document.location.hash.replace(/^#/,""); 
    </script> 
    <div id="player"> 
     <object type="application/x-shockwave-flash" data="http://s301826463.onlinehome.fr/so/dewplayer.swf?mp3=http://s301826463.onlinehome.fr/so/Tokyo.mp3" width="200" height="20" id="dewplayer"><param name="wmode" value="transparent"><param name="movie" value="http://s301826463.onlinehome.fr/so/dewplayer.swf?mp3=http://s301826463.onlinehome.fr/so/Tokyo.mp3"></object> 
     <a href="javascript:document.location.href=document.location.hash.replace(/^#/,'')">remove mp3 player</a> 
    </div> 
</body> 
</html> 

Y para poner un enlace que abra la página actual en un iframe y con una reproductor de MP3, sólo se necesita un enlace:

<a href="javascript:parent.location.href='/mp3.html#'+document.location.href.replace(new RegExp('^'+document.location.origin),'')">add mp3 player</a> 

un ejemplo usando ese here.

+0

¿Cómo haré eso con javascript? ¿Puede indicarme un buen artículo, o en qué aspecto de javascript específicamente me inclinaría específicamente? Gracias. – Graham

1

O tiene un reproductor independiente de Flash/Java/Unity etc. fuera de la ventana del navegador.
O bien, utiliza marcos, dos marcos, uno donde aparecen las páginas principales del sitio y otro donde reside el reproductor.
Otra forma es realizar toda la navegación en su sitio (donde desea que el reproductor sea continuo) usando llamadas asíncronas (Ajax).

Google utiliza por cierto iframes/marcos

+0

El único aspecto que se integrará en los marcos/iframes será el reproductor de mp3; ya que SEO será algo importante. Entonces, el problema es más el hecho de que estoy usando un reg. reproductor de mp3 en lugar de un reproductor flash? Si hago referencia a un reproductor flash en un iframe, ¿funcionaría? Además, ¿debería usar "frame" o "Iframe" para solo un div? ¡Vale gracias! Un poco te bombardeó con preguntas allí. – Graham

Cuestiones relacionadas