2013-07-29 43 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根目录。