2013-07-29 44 views
0

我正在尋找iframe的替代方法來加載網站中的xhtml頁面。在iframe中處理返回和刷新事件並不那麼容易。在div中加載xhtml頁面

我發現的最佳方式是當用戶從側面菜單中單擊一個項目時,在頁面中加載頁面。但它刷新整個頁面(包括菜單)。在Facebook和Google+中,當用戶單擊div中的任何鏈接時,菜單欄不會刷新。而是div和url中的內容發生變化。檢查他們的Javascript並不是那麼簡單。我想知道這背後的想法。期待建議。

回答

1

的想法是,你從你的XHTML標記一個Web服務器獲取數據,或從服務器獲取XHTML立即,使用AJAX和設置DIV內容到剛纔生成的XHTML。

設置DIV內容到XHTML低水平的方法是:

div.innerHTML = xhtml 

但是,它是更好的,更安全的使用圖書館像jQuery。

jQuery的,你只需要做到這一點:

$("div").html(xhtml); 
在這兩種情況下

格是你需要的股利和XHTML是從服務器接收markupped形式的內容。通過這樣做,您只需更新網頁的特定元素,而不是整個網頁。

0

這是通過AJAX請求完成的,以獲取頁面部分並將其加載到文檔中,因此不會發生頁面刷新。

利用AJAX(XMLHttpRequest對象)的最佳方式是使用流行的Javascript庫「jQuery」。它可以抽象出瀏覽器之間的差異,並且可以很容易地實現您要查找的內容。

的代碼示例,您已經加載的jQuery後到你的頁面:

$('#content').load('ajax/test.html'); 

哪裏#內容是div 「代替」 的iframe。 你可以調用該函數在菜單一旦鏈路(比方說#menu)點擊:

$('#menu a').on('click', function() { 
    var page_name = $(this).attr('href'); 
    $('#content').load(page_name); 
    return false; 
}); 

上面的例子採用的HTML代碼的鏈接的href屬性部分,其裝入#內容元素,然後返回false以便不加載新頁面。

確保href屬性具有正確的路徑到你的HTML文件,相對於Web根目錄。