java - 如何将对象作为参数传递给 onClick 上的 javascript 函数

标签 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 函数时,该值作为字符串传递。我希望日志作为对象传递。

这里我的输出未定义。

如果我输入“alert(log);”它正在打印对象的地址

最佳答案

这应该有效:

<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 服务器端将日志名称作为参数并显示其内容。

关于java - 如何将对象作为参数传递给 onClick 上的 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18923224/

相关文章:

javascript - 在 JavaScript 中对列表列表进行排序

javascript - JSON Loop 数组是一个对象的值

javascript - 在 table 或 div 元素上使用 hasFocus 绑定(bind)

java - 禁用 Spring Security 的 POST 方法

Java:在命令行中更新文本而无需换行

java - 自定义存储库的 Spring Data Solr 优先级

Java - Spring AOP - 使用之前的建议停止执行方法?

javascript - AngularJS - ng-option 下拉列表在选择 False 时不设置 ng-model 值

javascript - Node.js 检查 ftp 凭据是否有效

javascript - 我收到未定义的 xml 对象。为什么?