Safari 5.1.7 在 JSP 的文本区域中复制文本

Safari 5.1.7 Duplicates text in text area in JSP

本文关键字:文本 区域 复制 JSP Safari      更新时间:2023-09-26

在我的项目中,我在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((; 在页面上有按键调用。它检查所有浏览器的代码。我在 safari 浏览器上面临的问题是在文本框中输入的任何键上。它出现了两次,例如hhii mmyy nnaammee iiss SSaameerr。在谷歌中搜索了很多,并据此实现了代码。我关注了下面的链接http://answers.microsoft.com/en-us/windows/forum/windows_7-networking/characters-entered-twice-in-modal-dialog-under/134789c1-7845-4d10-ade2-9ff3b3a60085

我仍然面临这个问题,因为第一个字符被重复,例如 SSameer。仅当该 JSP 发生新的单击时,才会发生这种情况。

任何帮助都适用。提前谢谢。

我找到了一个解决方案。我也在相同的方法 WC(( 中添加了按键事件的代码;键 = 全局变量

document.onkeypress =  function(event)
{
    if(key == event.keyCode)
    {
        return false;
    }
    else
    {
        key = event.keyCode;
    }
}

它对我有用。