5

JSPページには2つの異なる部門があります。1つにはリンクのメニューが含まれており、クリックするとdiv2(id-content)がそれに応じて異なるページをロードします。私は次のようなことをしています-

<div id="menu">
<ul class="navbar">
  <li><a name="login" href="Login.jsp" onclick="changeContent()">Login</a>
   </li></div>

スクリプトには、次のようなものがあります-

<script language="JavaScript">
function changeContent() {
    document.getElementById('content').load('Login.jsp');
}
</script>

私も試しました-

document.getElementById('content').innerHTML=
"<jsp:include page="Login.jsp">"; 

どの方法も機能しませんでした。どのように私がすべきかを提案してください

4

4 に答える 4

4

jqueryを試してください。

function changeContent() {
    $('#content').load('Login.jsp');
}
于 2012-09-09T00:36:53.843 に答える
1

解決策は、innerHTMLメソッドで貼り付けることができるページコンテンツを非同期的に取得するAjaxを使用することです。Ajax呼び出しがどのように機能するかについての同様の質問に対する私の回答と、いくつかの紹介リンクを参照してください。

回答の例が機能しない理由については、最初のケースでは、Elementオブジェクトにload()メソッドがありません(自分で定義して表示していない場合を除く)。2番目の例では、質問のコメントの1つにあるように、javascriptで構文エラーを引き起こしている可能性があります。

参考までに、Webページの一部のJavaScriptに構文エラーがある場合、解析中の現在の式と残りの<script></script>ブロックは無視されます。これは関数宣言内にあるため、その関数が定義されることはありません。たとえば、含まれているページに埋め込まれた引用符は、innerHTML割り当ての文字列を終了します。次に、javascriptパーサーはHTMLの残りの部分を解析しようとし、HTMLが有効なjavascriptではないため、構文エラーが発生します。

于 2012-09-09T01:55:18.717 に答える
0

jqueryを使用します。クリックイベントハンドラーをアンカー要素に追加します。クリックハンドラーで$('#content').load(your_url);。このバージョンを使用することをお勧めしますload(url, function() { ...})。詳細はこちらhttp://api.jquery.com/load/

于 2012-09-09T00:47:17.113 に答える
0

最初のページはサーバーからダウンします。ブラウザに表示されます。ブラウザでリンク(またはボタン)をクリックすると、2番目のdivに新しいHTMLを入力する必要があります。これはAJAXリクエストに最適な仕事です。ブラウザのAJAXオブジェクトは、POST(またはその他の)文字列をサーバーに送信します。そして、AjaxオブジェクトはサーバーからHTML応答を受け取ります。そして、AJAXオブジェクトに含まれる応答データをどこにでも表示できます。

于 2012-09-09T01:59:47.243 に答える