5

我在 JSP 页面中有两个不同的部门。一个包含一个链接菜单,当单击 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

解决方案是使用 Ajax,它将异步检索可以使用 innerHTML 方法粘贴的页面内容。请参阅对 Ajax 调用如何工作的类似问题的回答以及一些介绍性链接。

至于为什么您的答案中的示例不起作用,在第一种情况下, Element 对象上没有 load() 方法(除非您自己定义了一个并且没有显示它)。在第二个示例中,正如其中一个问题评论所说,可能有一些东西导致了 javascript 中的语法错误。

作为仅供参考,当网页中的某些 javascript 存在语法错误时,当前正在解析的表达式和 <script></script> 块的其余部分将被忽略。由于这是在函数声明中,因此该函数永远不会被定义。例如,包含页面中的嵌入引号将结束 innerHTML 分配的字符串。然后 javascript 解析器将尝试解析 HTML 的其余部分,从而导致语法错误,因为 HTML 将不是有效的 javascript。

于 2012-09-09T01:55:18.717 回答
0

我们使用jquery。将 click 事件处理程序添加到锚元素。在点击处理程序调用$('#content').load(your_url);中。您可能想要使用该load(url, function() { ...})版本。更多信息在这里http://api.jquery.com/load/

于 2012-09-09T00:47:17.113 回答
0

您的初始页面来自服务器。它由浏览器显示。当您单击浏览器中的链接(或按钮)时,您希望用新的 HTML 填充第二个 div。这是 AJAX 请求的完美工作。浏览器中的 AJAX 对象所做的是将 POST(或其他)字符串发送到服务器。然后 Ajax 对象从服务器接收 HTML 响应。然后你可以在任何你想要的地方显示 AJAX 对象包含的响应数据。

于 2012-09-09T01:59:47.243 回答