1
にインラインジャバスクリプトを削除します。セキュリティ上の理由から次のように私は現在、JSPページを持っているのjspのforeach
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<a href=# onclick="javascript:myFunction1();">Submit form with default</a><br>
<c:forEach items="${details}" var="detail">
<a href=# onclick="javascript:myFunction2(${detail.id});">Submit form for detail id <c:out value="detail.id" /></a><br>
</c:forEach>
<script type="text/javascript">
function myFunction1() {
document.myForm.id.value = 0;
document.myForm.submit();
}
function myFunction2(detailId) {
document.myForm.id.value = detailId;
document.myForm.submit();
}
</script>
が、私はインラインJavaScriptを削除したいです。私は次のようにmyFunction1()に対処する方法を知っている:私は方法がわからない何
はfunction myFunction1() {
document.myForm.id.value = 0;
document.myForm.submit();
}
function myFunction2(detailId) {
document.myForm.id.value = detailId;
document.myForm.submit();
}
document.getElementById('myDefault').addEventListener('click', myFunction1);
onclick="javascript:myFunction2(${detail.id});"
とを削除する方法です:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<a href=# id="myDefault">Submit form with default</a><br>
<c:forEach items="${details}" var="detail">
<a href=# onclick="javascript:myFunction2(${detail.id});">Submit form for detail id <c:out value="detail.id" /></a><br>
</c:forEach>
<script src="myJavascript.js"></script>
とファイルmyJavascript.jsで
イベントハンドラを持つすべてのアンカーを選択するためにthis.dataset.detailId
:あなたが現在deatail ID値を取得することができ、クリックイベントハンドラ内
data-detail-id="${detail.id}
: