2009-08-26 1 views
1

私は各サブページ間を移動するにつれて滑らかに演奏を続けている私のウェブサイトにバックグラウンドミュージックを持ちたいと思います。私は、音楽が再び始まらないようにサブページをクリックするとリフレッシュされない何らかのフッタを使用することを考えました。他のページをクリックしたときに音楽プレーヤーが入っているフッターは更新されません

私のサブページにはPHP includeを使用しています。

含めるタグヘッダ
コンテンツ
用を含め、タグフッター

のために私はこれをどのように行うことができますか?私はフレームなどを使用したくない。おそらく、Ajaxの解決策がありますか?

答えて

0

あなたは2つのオプションがあります。

  1. iframeの主な内容を入れて、外部のHTMLでの音楽プレーヤー。

  2. div id="content"に本文を入れて、divの内容をAJAXまたはJavaScriptに置き換えてください。 IE < 7.0では、DIVの内容を置き換えるのが遅いことに注意してください。

溶液#1は、より簡単ですが、あなたはすべての外部リンクにtarget="_self"を追加する必要がありますか、彼らはあなたのiframe内に捕獲され、あなたの訪問者がそれを嫌います。

PS:音楽を演奏するサイトが嫌い、2度目にページを訪問することはほとんどありません。

+0

こんにちは、ありがとうございました。私は、フレームはウェブサイトにはあまり適していないことを知っています。だから私は別の機会を求めています。私はフラッシュページのようにそれを処理したい。そのフッタバーに小さなアイコンを置いて、それをクリックすると音楽が始まります... 解決策2がどのように正確に動作するか、リンクをいくつか提供することができますか? :) –

0

物理サブページの代わりにajaxを使用してページの内容を変更できます。そうすれば、ヘッダーとフッターは一定で変更されませんが、内容は動的です。

+0

ああ、わかります!だから私は1ページしか持っていない。 "index.php"と私のすべてのコンテンツをそこに置く。ヴィータ、プロフィール、ポートフォリオ、...?うーん...それは難しいと思う。 –

+0

これは私の言わないものです。この種の状況に対処するための多くの選択肢があります。例えば。 ajax経由でrequests.phpというページにcontent: "portfolio"のような特定の引数を要求することができ、request.phpはportfolio.phpの内容を返すことができます。 – stefita

1

最初に、経験豊かなウェブユーザーとして、私は少なくともあなたの音楽のためのオン/オフボタンを提供することをお勧めします。私は、マルチメディアがユーザーの制御下にあるべきであり、ユーザーがそれを要求しない限り、オフにすることが望ましいとの意見に非常に敏感です。私はサイトに行って、音楽がどこから始まっても耳障りなことを怖がっている。

ajaxを使用する必要があります。ナビゲーションヘッダー、ミュージックバーフッター(オフボタン付き!)、コンテンツエリアを作成します。サイト内のナビゲーションは、ajax関数を起動してそのコンテンツを取得し、現在のコンテンツを置き換えます。

何かのように:ナビゲーションバーのリンクのそれぞれは、サーバからコンテンツを要求するJS関数に結び付けられている

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



          content of page 



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

(リンクIDまたはHREFに基づく)と偽(そのリンクのdoesnを返します実際にロード)し、現在のコンテンツを要求されたコンテンツに置き換えます。jqueryので

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

最後の一つです:

あなたはこのルートを行く場合は、ページのURLは変更されませんので、これはブックマークしてお互いに特定のページを転送する人々に影響を与えることができます。あなたが尋ねたので


は、ここではPHPのための単純なモデルだとAjaxの会談:

<?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

ありがとうございました!だから私は3つのdivs(ヘッダー、コンテンツ、音楽のフッター)があります。 "Example page"というリンクがある場合、コードを使用するだけで、私のexample-page.phpの内容がid = "content"のdivに転送されます。それはいいねえ、少なくとも私は異なるページを持っている=扱いやすい。 example-page.phpにヘッダーとフッターを含める必要はありませんが、コンテンツだけは含める必要がありますか? –

+0

example-page.phpは、$ _GET変数を使ってリクエストを受け取ったときにcontent divに入る関連する(マークアップされた)コンテンツのみを返すようにします。私は通常、 "if!($ _ GET)...通常のページを読み込む"のようなものを使用し、GET変数に結びついているものだけを返します。そのコードをすばやく書いたので、私の仕事を再確認してください: http://docs.jquery.com/Ajax/load#urldatacallback – Anthony

0

フム...多分別のアイデア:私はindex.phpをを入力すると自動的にポップアップされライトボックスと似ています=実際の新しいウィンドウはありません。画像アイコン付きの白いボックス。それは可能ですか、私はサブページに行くときにそれは残っていませんか?

+0

ポップアップウィンドウを意味する場合、ブロックされることがあります。たとえそれがポップアップのように見えなくても、私はそのアイデアを正しく理解していればそれはまだ1つになるので、ユーザーがgoogleに行くかwhathaveyouするとそこに残る。 – Anthony

0

私にこのようなアドバイスをくれたことありがとう!音楽を使うのはちょっと難しいかもしれません。しかし、フラッシュ/ AJAXを取得する唯一の困難な方法がある - 私は考えています何

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

。 Iframeが悪い...

ありがとうございました:)

関連する問題