如何在onClick上将对象作为参数传递给java脚本函数

How to pass Object as parameter to java script function on onClick

本文关键字:参数传递 java 函数 脚本 对象 onClick      更新时间:2023-09-26

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

还有其他方法可以达到我的目标吗?

这是我正在尝试做的事情,我正在尝试通过传递日志文件的 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 服务器端将日志名称作为参数并显示其内容。