如何在onClick上将Object作为参数传递给javascript函数

时间:2013-09-20 18:13:22

标签: java javascript jquery spring-mvc

我的主要目标: 当我点击链接时,应该打开一个新窗口并在该窗口中显示整个日志文件的内容,窗口不应该有地址栏和导航按钮(后退,前进)。

我能达到目标吗?

这是我想要做的,我试图通过传递日志文件的URL来调用java脚本方法,并考虑实现代码以打开新窗口

<table id="serverLogsStats" class="serverLogsView">
   <c:forEach var="log" items="${logsList}" varStatus="i" >
      <tr>
        <td>${log.name}</td>            
        <td><a href="#" onclick="openLog('${log}');">Open log</a></td>        
      </tr>
   </c:forEach>
</table>


<script>
function openLog (log) {
    var abc = log.name;
    alert(abc);    
}
</script>

当我将对象'log'传递给openLog函数时,该值将作为String传递。我希望将日志作为对象传递。

这里我的输出是未定义的。

如果我把'警告(日志);'它正在打印对象的地址

1 个答案:

答案 0 :(得分:1)

这应该有效:

<table id="serverLogsStats" class="serverLogsView">
   <c:forEach var="log" items="${logsList}" varStatus="i" >
      <tr>
        <td>${log.name}</td>            
        <td><a href="#" onclick="openLog('${log.name}');">Open log</a></td>        
      </tr>
   </c:forEach>
</table>


<script>
function openLog(logName) {
    alert(logName);    
}
</script>

你不能使用java对象并直接将它们用作JS对象,你只能传递原语。

对于您的用例,您可以让URL服务器端将日志名称作为参数并显示其内容。