2011-01-20 15 views
0

私のサイトのコンテナの内容をクリックすると、そのコンテナの内容が変更されます。リンクを介してサイトの一部を変更するにはどうすればよいですか?

http://img810.imageshack.us/img810/5128/17581443.jpg

基本的に私は、左のリンクがクリックされたときに変更する(右側)大型コンテナが欲しい:それはので、私は、画像を含めまし説明するのは難しいの一種です。明らかに、リンクごとに別々のページを作成し、それらのページにリンクするだけで同様の効果を得ることができましたが、そのような少量の変更に対して全く新しいページを読み込むよりも効率的な方法であるようです。

私の目標はサイトのパフォーマンスです。その部分だけを変更すると、大量のスクリプトやサイトの信頼性が損なわれることがあります。リンクを直接ページに移動させます。前もって感謝します。

+0

あなたは何を試しましたか?何がうまくいかなかったのですか?ここで何を求めているのですか? – Oded

+0

私は上記を行う最も効率的な方法が何であるか尋ねています。 – Ferret

答えて

1

divとして領域を設定するだけです。

のは、私たちは「コンテンツ」と呼んでよと言ってみましょう:次に

<div id="content"> 
    The content will go here 
</div> 

ボタンで、データを含むページを呼び出して、そのdivの中でそれを投稿するJavaScriptコードをアクティブにします

function getHTML(pageName, elementID) { 
     if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp = new XMLHttpRequest(); 
     } else {// code for IE6, IE5 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange = function() { 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
       document.getElementById(elementID).innerHTML = xmlhttp.responseText; 
      } 
     }; 
     xmlhttp.open("GET", pageName, true); 
     xmlhttp.send(); 
     return xmlhttp; 
    } 

function changeContent1() { 
getHTML("content1.html","content"); 
} 

、ボタンはもちろん、その関数を呼び出す必要があります。

<button type="button" onclick="changeContent1()">changeContent1</button> 

ただし、ブラウザの戻るボタンを使用してHTML変更を元に戻すことはできません。

+0

これは間違いなく私が望むことをするでしょうが、正直言って私は(私がこれに近づくと)私が快適であるよりも多くのコーディングを必要とすると思います。最終的には、私は各ページにリンクするだけと思う。 – Ferret

0

これを行う最善の方法は、AJAX(http://en.wikipedia.org/wiki/Ajax_(programming))を使用することです。これを達成する最善の方法は、あなたのために大部分の作業を取り除き、はるかに浅い学習曲線を提供するjavascriptライブラリを使用することです。個人的には、jquery(http://jquery.com/)をお勧めします。その場合は、load()の関数を参照する必要があります。http://api.jquery.com/load/

+0

私はこれが彼が現在求めていることに基づいて過度だと感じます。彼が<10の可能なナビゲーションオプションを持っていれば、私は彼がdivのビューをトグルするだけでうまくいくと言うだろう。彼の人数が多い場合や頻繁に変更する場合は、これが最適な解決策になります。 –

+0

@Chuckあなたは、すべてのコンテンツを1ページにロードしてから、ディスプレイを切り替えます:none/display:クリックされたリンクに基づいてブロックしますか? –

+0

すべてのコンテンツ、ナビゲーションではありません。それは私が彼が話していると仮定しているものです。 "右の大きいコンテナ" - 右のコンテナはナビです。 –

関連する問題