这可能是一个愚蠢的问题,但我真的坚持了很久。希望有人可以伸出手来解释根本原因。谢谢。
在我的处理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>
我用firebug观察了这些值。它们在价值观上是正确的。实际上,predecessorName变量只是我自己的MVC设计中的模型类的名称。如果程序正在运行,用户应该能够单击链接并访问特定模型类的相应前端视图JSP。
有人可以指出我在上面代码中犯的错误吗?
答案 0 :(得分:0)
如果您只想打开静态网址,只需通过JSP将完整的网址传递给链接的href
:
<a href="${param.predecessorName}.jsp">
${param.predecessorTitle}
</a>
如果您想在JavaScript函数中打开页面,请继续阅读
您应该使用window.location
代替document.location
(请参阅here)。如果要在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;
});