2009-08-26 13 views
1

Ich möchte Hintergrundmusik auf meiner Website haben, die reibungslos weiterspielt, wenn ich zwischen den einzelnen Seiten wechsle. Ich dachte daran, eine Fußzeile zu verwenden, die nicht aktualisiert wird, wenn ich auf eine Unterseite klicke, damit die Musik nicht neu startet.Fußzeile mit Musik-Player, die nicht aktualisiert wird, wenn ich auf eine andere Seite klicke

Ich verwende PHP include für meine Unterseiten, z.

umfassen-Tag für Kopf
Inhalt
umfassen-Tag für Fußzeile

Wie kann ich das tun? Ich möchte keine Frames oder ähnliches verwenden. Vielleicht gibt es eine Lösung mit Ajax?

Antwort

0

Sie haben zwei Möglichkeiten:

  1. Setzen Sie den Hauptinhalt in einem iframe und den Musik-Player in der HTML außerhalb.

  2. Setzen Sie den Hauptinhalt in eine div id="content" und ersetzen Sie den Inhalt dieser div durch AJAX oder JavaScript. Beachten Sie, dass das Ersetzen des Inhalts eines DIV bei IE < 7.0 langsam ist.

Lösung # 1 ist einfach, aber Sie müssen target="_self" für alle externen Links hinzufügen oder sie werden in Ihrem iframe und Ihre Besucher, das aufgenommen hassen.

PS: Ich hasse Seiten, die Musik spielen, und ich besuche selten eine Seite ein zweites Mal, die mich so nervt.

+0

Hallo :) es, vielen Dank für so schnell reagieren. Ich weiß, dass Frames für Websites nicht so toll sind. Also suche ich nach einer anderen Gelegenheit. Ich möchte damit umgehen wie die Flash-Seiten. Ich möchte ein kleines Symbol in dieser Fußleiste platzieren und wenn Sie darauf klicken, beginnt die Musik ... Können Sie mir vielleicht sagen, wie genau Lösung 2 funktioniert oder einige Links zur Verfügung stellt? :) –

0

Sie können den Inhalt der Seite über AJAX anstelle von physischen Unterseiten ändern. So bleiben Kopf- und Fußzeile konstant und ändern sich nicht, sondern nur der Inhalt ist dynamisch.

+0

Ah, ich sehe! Ich habe also nur eine Seite, z. "index.php" und setze alle meine Inhalte dort hinein, z.B. Vita, Profil, Portfolio, ...? Hm ... das ist schwer zu handhaben, denke ich. –

+0

das bin ich nicht. Sie haben viele Möglichkeiten, mit dieser Art von Situation umzugehen. Z.B. Sie können über ajax eine Seite namens requests.php mit einem bestimmten Argument wie content anfordern: "portfolio" und die request.php können den Inhalt von portfolio.php zurückgeben. – stefita

1

Erstens: Als erfahrener Internetnutzer bitte ich Sie, zumindest einen Ein-/Ausschalter für die Musik anzubieten. Ich bin sehr der Meinung, dass jedes Multimedia in der Kontrolle des Benutzers sein sollte und vorzugsweise ausgeschaltet sein sollte, es sei denn, der Benutzer fordert es an. Ich hasse es, auf eine Seite zu gehen und meinen Verstand zu erschrecken, wenn Musik aus dem Nichts kommt (oder Videos mit Ton usw.).

Sie müssen Ajax verwenden, ja. Sie würden einen Navigationsheader, Ihre Fußzeile der Musikleiste (mit Aus-Taste!) Und einen Inhaltsbereich erstellen. Jede Navigation auf der Site würde eine Ajax-Funktion auslösen, um diesen Inhalt abzurufen und den aktuellen Inhalt zu ersetzen.

Etwas wie:

=================================================================== 
     home | about | content | more content | contact 
    ------------------------------------------------------------------- 



          content of page 



    ------------------------------------------------------------------- 
         MusicPlayer [off/on] 
    =================================================================== 

Wo jeder der navbar Links zu einer js-Funktion gebunden ist, dass der Inhalt vom Server anfordert (basierend auf dem Link-ID oder href) und gibt false zurück (so die Verbindung doesn lädt nicht wirklich und ersetzt dann den aktuellen Inhalt durch den angeforderten Inhalt.

In jquery:

$("#navbar a").click(function(() { 
     $("#content").load("somescript.php", content = $("this").attr("id")); 
});  

Eine letzte Sache:

Wenn Sie diesen Weg gehen, wird die Seite URL nicht ändern, so kann dies Auswirkungen auf bookmarking und Menschen Weiterleiten bestimmter Seiten zueinander.


Da Sie gefragt, hier ist ein einfaches Modell für die PHP, dass die Ajax-Gespräche:

<?php 

$home_page = (!($_GET)) ? true : false; 

$content = (!($home_page)) ? $_GET['content'] : 'home'; 

if ($home_page) { 
include("header.php"); //some script that has your header content above the content div. 
} 

//This part always gets output. So you don't have to worry about the method that requests it. 

include($content.".php"); //some script or html of that content. 
//Notice that it always defaults to home in case there is no $_GET. 
// Be careful, though. Now someone could put in "www.yoursite.org/index.php?content="blah" 
// and they would get the content but no header or footer! 

if($home_page) { 
    include("footer.php"); // Just like the header. 
} 

?> 
+0

Vielen Dank für Ihre Antwort! Also habe ich 3 divs (Header, Inhalt, Musik-Fußzeile). Wenn ich einen Link "Beispiel Seite" habe, muss ich nur Ihren Code verwenden und er wird den Inhalt meiner example-page.php auf das div mit id = "content" übertragen? Das hört sich gut an, zumindest habe ich verschiedene Seiten = einfacher zu handhaben. Also brauche ich auch nicht in der example-page.php Kopf- und Fußzeile, sondern nur den Inhalt? –

+0

Sie würden es so machen, dass example-page.php nur den relevanten (und gut markierten) Inhalt zurückgibt, der in das Inhalts-Div gelangt, wenn er eine Anfrage mit einer $ _GET-Variable empfängt. Ich verwende normalerweise etwas wie "if! ($ _ GET) ... normale Seite laden" und dann ein Bit, das nur das liefert, was mit der GET-Variablen verknüpft ist, wenn es eine gibt. Und ich schrieb diesen Code wirklich schnell, also überprüfe meine Arbeit unter: http://docs.jquery.com/Ajax/load#urldatacallback – Anthony

0

Hm ... vielleicht eine andere Idee: ein Pop-up automatisch, wenn ich index.php geben die sieht ähnlich Lightbox = kein echtes neues Fenster, z nur eine weiße Box mit Bildsymbol. Ist das möglich oder wird es nicht bleiben, wenn ich auf eine Unterseite gehe?

+0

Wenn Sie ein Popup-Fenster meinen, könnte es blockiert werden. Auch wenn es nicht wie ein Popup aussieht, wird es immer noch eins sein (wenn ich die Idee richtig verstehe) und so wäre es immer noch da, wenn der Benutzer google oder whathaveyou ging. – Anthony

0

Vielen Dank, dass Sie mir so gute Ratschläge geben! Vielleicht ist es nur eine schlechte Idee, Musik zu benutzen, weil es unbequem ist.

http://www.larajade.co.uk/high/

Das ist, was ich denke - aber es gibt nur schwierig Möglichkeiten es, Flash/Ajax zu erhalten. Iframes sind schlecht ...

Danke