在我的网页(例如Link1:http://localhost:8086/MyStrutsApp/login.do)中有几个链接。当用户点击其中一个链接时,他会被带到另一个页面(例如link2:http://localhost:8086/MyStrutsApp/AddBook.jsp)以填充html表单。在同一页面上显示页面数据而不转发给其他页面
现在我想实现的是,当任何用户点击链接时,该HTML表单(Link2)显示在同一页面上(即Link1)。
我不知道如何做到这一点。
在我的网页(例如Link1:http://localhost:8086/MyStrutsApp/login.do)中有几个链接。当用户点击其中一个链接时,他会被带到另一个页面(例如link2:http://localhost:8086/MyStrutsApp/AddBook.jsp)以填充html表单。在同一页面上显示页面数据而不转发给其他页面
现在我想实现的是,当任何用户点击链接时,该HTML表单(Link2)显示在同一页面上(即Link1)。
我不知道如何做到这一点。
的AJAX的方式来实现这一目标是:
如果你想使用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>
(正如贝尼特斯所说,你可以使用相同的技术在对话框中显示新零件)
如果你可以看看这个[链接](http://pastebin.com/CHGVS81r)和[链接](http://pastebin.com/0QxbLhrU)我使用了urs脚本,但是当我点击'add一本书我想(这个内容将被替换)文本被替换为form2.html数据,即它的html格式,但它没有发生... – RanRag 2011-06-12 12:03:37
plz帮助其实是一个noob ...在JavaScript ..... – RanRag 2011-06-12 12:06:38
它适用于我 - 您需要通过HTTP服务器加载HTML文件,但是,如果您只是将浏览器指向文件URL,则不起作用。 (你可以使用类似“python -m SimpleHTTPServer”来简单地从当前目录中提供文件,如果你只是想尝试一下) – 2011-06-12 13:32:44
要在另一个页面中显示一个页面,请使用iframe
。请参阅iframe docs。
,使外层页面上的链接加载它的目标页面进入iframe
,给iframe
一个name
属性,并给出了链接匹配target
属性。
您可以随时使用jQuery显示一个对话框...... http://jqueryui.com/demos/dialog/
获取与AJAX页面并将其显示在对话框内。
为什么要这样做?一个页面,其中两个不同的页面具有不同的URL,更容易被人们理解,也是谷歌。 Thinka回合此页面,例如,stackoverflow.com,以及不同的页面如何具有不同的URL。 – vidstige 2011-06-12 10:23:22
@vistige:但是我们在这里也有“添加评论”,它可以让我们在不离开页面的情况下添加评论,而且我们可以添加一个答案而不必进入新页面。 – 2011-06-26 21:45:10