0

这可能是一个愚蠢的问题,但我真的在那里停留了很长时间。希望有人可以帮忙并在这里解释根本原因。谢谢。

在我的处理 JSP 中,我有以下代码来调用 Javascript 函数。所有值都是通过 POST 动作从前端 JSP 获取的:

<a onclick="loadPredecessorPage(${param.predecessorName})" href="javascript:;">
   ${param.predecessorTitle}
</a>

同时,在其上面的标题中,我有以下 javascript 函数:

<script language="javascript">
      function loadPredecessorPage(predecessorName)
      {
           var url = predecessorName +".jsp";
           document.location.href = url;
      }
</script>

我用萤火虫来观察这些值。他们在价值观上是正确的。实际上,previousName 变量只是我自己的 MVC 设计中的模型类的名称。如果程序正在运行,用户应该能够单击链接并访问特定模型类的相应前端视图 JSP。

有人可以指出我在上面的代码中犯的错误吗?

4

1 回答 1

0

如果您只想打开一个静态 URL,您可以简单地将完整的 URLhref通过 JSP 传递给您的链接:

<a href="${param.predecessorName}.jsp">
   ${param.predecessorTitle}
</a>

如果您仍然想在 JavaScript 函数中打开页面,请继续阅读。
您应该使用window.location代替document.location(请参见此处)。如果您想以 HTML 格式传递 URL,您应该在相应的data-属性中执行此操作。此外,建议您在运行时通过 JavaScript 添加侦听器。

示例 HTML:

<a id="loadPage" href="#" data-url="http://stackoverflow.com">Load Page</a>

jQuery代码:

$('#loadPage').on('click',function() {
    var url = $(this).data('url');
    window.location.href = url;
});
于 2013-02-05T11:14:52.763 回答