내 프로젝트에서 웹 페이지에서 Reject Remarks를 검색하는 JSP가 있습니다.Safari 5.1.7 JSP의 텍스트 영역에 텍스트가 중복되었습니다.
<%
String rejectRemarks = null;
String rejectType = null;
String isScrap = "N";
if(request.getParameter("rejectRemarks") != null && request.getParameter("rejectRemarks")!="undefined")
{
rejectRemarks = request.getParameter("rejectRemarks");
rejectType = request.getParameter("rejectType");
//System.out.println("in remarks.jsp reject remarks before substring ::" + rejectRemarks);
if(rejectType != null && rejectType.equals("S"))
isScrap="Y";
}
else
rejectRemarks = "";
%>
<html>
<head>
<script type="text/javascript">
var remarksValue = "";
function showDetails()
{
var maxlength=255;
var e = window.event;
remarksValue = document.getElementById("remarks").value;
if(remarksValue == undefined || remarksValue == null ||MyTrim(remarksValue).length==0)
{
remarksValue = "";
document.getElementById("validity").value="Enter valid remarks";
document.getElementById("remarks").value="";
}
else
{
if(remarksValue.length>maxlength)
{
showError("TCW325","","","",true);
return;
}
window.returnValue=remarksValue;
document.getElementById("remarksEntered").value = remarksValue;
window.close();
}
}
function fCase(o)
{
o.value=o.value.toUpperCase();
}
function wc()
{
var bwserAgnt = navigator.userAgent;
if(bwserAgnt.indexOf("Chrome")!= -1)
{
document.onkeydown = function(e)
{
if(remarksValue.length>255 && e.keyCode!=8)
{
var remarksValue = document.getElementById("remarks").value;
remarksValue = remarksValue.slice(0,-1);
document.getElementById("remarks").value = remarksValue;
}
else
wcNew(e);
}
}
else if(bwserAgnt.indexOf("Safari")!= -1)
{
document.onkeydown = function(event)
{
event = event || window.event;
if (event.keyCode == 8 || event.keyCode == 37 ||
event.keyCode == 38 || event.keyCode == 39 ||
event.keyCode == 46 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 16)
{
if(remarksValue.length>255 && e.keyCode!=8)
{
var remarksValue = document.getElementById("remarks").value;
remarksValue = remarksValue.slice(0,-1);
document.getElementById("remarks").value = remarksValue;
}
else
wcNew(event);
return true;
}
else
{
return false;
}
}
}
else if(bwserAgnt.indexOf("Firefox")!= -1)
{
var e = window.event;
if(window.event.keyCode!=8)
{
var remarksValue = document.getElementById("remarks").value;
if(remarksValue.length>255){
remarksValue = remarksValue.slice(0,-1);
}
document.getElementById("remarks").value = remarksValue;
}
wcNew(e);
}
else
{
var e = window.event;
if(window.event.keyCode!=8)
{
var remarksValue = document.getElementById("remarks").value;
if(remarksValue.length>255){
remarksValue = remarksValue.slice(0,-1);
}
document.getElementById("remarks").value = remarksValue;
}
wcNew(e);
}
}
function wcNew(e)
{
characterCode = e.keyCode ;//character code is contained in IE's keyCode property
if(characterCode == 13)
{
var remarksValue = document.getElementById("remarks").value;
document.getElementById("remarksEntered").value = remarksValue;
showDetails();
}
}
function checkMaxLength(me)
{
var maxlength=255;
var strRemarks=me.value;
if(strRemarks.length >= maxlength)
{
alert("Remarks should not exceed 255 characters");
return false;
}
}
function close1()
{
window.close();
}
</script>
<%
if(isScrap.equals("Y")){
%>
<title>Scrap Remarks</title>
<%
}else
{
%>
<title>Reject Remarks</title>
<%}%>
</head>
<body onKeyPress="wc();" >
<form Autocomplete="off" name ="frmMain" id="frmMain" method="post" >
<table>
<tr>
<td>
<INPUT TYPE="text" name="validity" id="validity" CLASS='cwInputBoxReadOnly' readOnly >
</td>
</tr>
<tr>
<td>
<textarea id="remarks" name="remarks" rows="8" cols="25" onkeypress="return checkMaxLength(this);" ><%=rejectRemarks==null?"":rejectRemarks%></textarea>
</td>
</tr>
</table>
<table align="center">
<tr>
<td>
<input type="button" class="grayTabHeaderSelected" id ="OK" name="OK" value="OK" align="CENTER" onClick="javascript:showDetails()"/>
</td>
<td>
<input type="button" class="grayTabHeaderSelected" id ="CANCEL" name="CANCEL" value="CANCEL" align="CENTER" onClick="close1()"/>
</td>
</tr>
</table>
<input type="hidden" id="remarksEntered" name="remarksEntered">
</body>
</html>
내에서이 방법이 방법 내에서 WC(); 페이지에서 keypress를 호출했습니다. 모든 브라우저의 코드를 확인합니다. Safari 브라우저에서 직면하게되는 문제는 텍스트 상자에 입력 된 모든 키에 있습니다. 예를 들어 SShameerr와 같은 두 번 나타납니다. Google에서 많은 검색을하고 이에 따라 코드를 구현했습니다. 나는 아직도 내가 먼저 문자 예컨대 SSameer 반복됩니다 같은 문제에 직면하고있다 http://answers.microsoft.com/en-us/windows/forum/windows_7-networking/characters-entered-twice-in-modal-dialog-under/134789c1-7845-4d10-ade2-9ff3b3a60085
링크 아래 따랐다. 해당 JSP에 대해 새 클릭이 발생할 때만 발생합니다.
도움이되었습니다. 미리 감사드립니다.