2011-06-12 98 views
1

在我的網頁(例如Link1:http://localhost:8086/MyStrutsApp/login.do)中有幾個鏈接。當用戶點擊其中一個鏈接時,他會被帶到另一個頁面(例如link2:http://localhost:8086/MyStrutsApp/AddBook.jsp)以填充html表單。在同一頁面上顯示頁面數據而不轉發給其他頁面

現在我想實現的是,當任何用戶點擊鏈接時,該HTML表單(Link2)顯示在同一頁面上(即Link1)。

我不知道如何做到這一點。

+0

爲什麼要這樣做?一個頁面,其中兩個不同的頁面具有不同的URL,更容易被人們理解,也是谷歌。 Thinka回合此頁面,例如,stackoverflow.com,以及不同的頁面如何具有不同的URL。 – vidstige 2011-06-12 10:23:22

+0

@vistige:但是我們在這裏也有「添加評論」,它可以讓我們在不離開頁面的情況下添加評論,而且我們可以添加一個答案而不必進入新頁面。 – 2011-06-26 21:45:10

回答

2

的AJAX的方式來實現這一目標是:

  • 你有你的原始頁面上的DIV將被替換(即,包含的內容纔有意義在原來的背景下或完全空)
  • 您的Link2 servlet僅生成上述DIV的內容(而不是該頁面的內容)
  • 您使用一小部分Javascript進行AJAX調用並填充響應的DIV。

如果你想使用Dojo的HTML頁面看起來像這樣:

<!-- main content --> 
<div id="leftpanel"> 
    <h3>This content will be replaced</h3> 
    You can <a href="#" onClick="updateFromURL('/MyStrutsApp/AddBook.jsp)">add a book</a> 
</div> 

的JavaScript代碼是這樣的:

<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js" type="text/javascript"></script> 
<script type="text/javascript"> 
function display_wait(s) { 
    var mainPanel=dojo.byId("leftpanel"); 
    mainPanel.innerHTML='<div class="waitingmsg">'+s+'</div>'; 
} 

function updateFromURL(url) { 
    display_wait("loading content"); 
    dojo.xhrGet({url:url, 
       load:function(result) { 
       dojo.byId('leftpanel').innerHTML=result; 
      }}); 
} 
</script> 

(正如貝尼特斯所說,你可以使用相同的技術在對話框中顯示新零件)

+0

如果你可以看看這個[鏈接](http://pastebin.com/CHGVS81r)和[鏈接](http://pastebin.com/0QxbLhrU)我使用了urs腳本,但是當我點擊'add一本書我想(這個內容將被替換)文本被替換爲form2.html數據,即它的html格式,但它沒有發生... – RanRag 2011-06-12 12:03:37

+0

plz幫助其實是一個noob ...在JavaScript ..... – RanRag 2011-06-12 12:06:38

+0

它適用於我 - 您需要通過HTTP服務器加載HTML文件,但是,如果您只是將瀏覽器指向文件URL,則不起作用。 (你可以使用類似「python -m SimpleHTTPServer」來簡單地從當前目錄中提供文件,如果你只是想嘗試一下) – 2011-06-12 13:32:44

0

要在另一個頁面中顯示一個頁面,請使用iframe。請參閱iframe docs

,使外層頁面上的鏈接加載它的目標頁面進入iframe,給iframe一個name屬性,並給出了鏈接匹配target屬性。

相關問題