我的主要目标: 当我单击链接时,应打开一个新窗口并在该窗口中显示整个日志文件的内容,并且该窗口不应有地址栏和导航按钮(后退、前进)。
还有其他方法可以实现我的目标吗?
这就是我想做的,我试图通过传递日志文件的 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/