zoukankan      html  css  js  c++  java
  • url传参时特殊字符的处理

    由于“url?param” 传递的参数是通过get 方式提交的,所以会出现中文乱码,特殊字符无效等情况,这里只写出特殊字符的处理

     关键:将idUser隐藏在jsp中,用集合下标number作为超链接idUser的标志,在js中通过选择器取值。同时在js中对该参数调用escapeStr方法,处理特殊字符

              

     jsp:

     <table>

    <logic:iterate id="list" name="a_usr_s02Form" property="listOutput" indexId="number" >

     <tr>
         <td class="tdLeft">
         <!--hidden url and param idUser  -->
               <html:hidden property="idUser" name="list" styleClass="urlparam${number}"/>
               <input type="hidden" value="<%=request.getContextPath()%>/a_usr/a_usr_s02_UpdateBL.do?idUser=" class="urladdress"/>
                    <a id="code" href="#" onclick="openDefinesWindow('url','<bean:write name="number"/>','UserAccount','<bean:message    key="window.width"/>','<bean:message key="window.height" />','yes')"><bean:write name="list" property="idUser" /></a>
     </td>
        <td class="tdLeft"><bean:write name="list" property="userName" /></td>
        <td class="tdLeft"><t:writeCodeValue codeList="LIST_USERTYPE" property="userType" name="list" /></td>
        <td class="tdLeft"><bean:write name="list" property="svcCtrName" /></td>
        <td class="tdLeft"><t:writeCodeValue codeList="LIST_USERSTATUS" property="userStatus" name="list" /></td>
    </tr>
    </logic:iterate>
    </table>
     

     js

    function openDefinesWindow(url,number,name,width,height,scrollbars) {
        var features = "toolbar=no, status=yes, menubar=no, location=no,resizable=yes";
        var left = Number((screen.availWidth/2) - (width/2));
        var top = Number((screen.availHeight/2) - (height/2));
        var strFeatures = features + ", width = "+width+", height = "+height+", top = "+top+", left = "+
        left+", scrollbars = "+scrollbars;
        if(url=="url"){
        var newurl = $(".urladdress").val()+escapeStr($(".urlparam"+number).val());
        var newwindow = window.open(newurl, name, strFeatures);
        }else{
            var newwindow = window.open(url, name, strFeatures);
        }
        if (window.focus) { newwindow.focus(); }
    }

    function escapeStr(str) {
        escape(str);
        //'%' must be first replace
        //%,+,',/,",?,#,^,\,&,!,~,$,*,@,_
        str = str.replace(/\%/g,'%25')
              .replace(/\+/g, '%2B')
              .replace(/\'/g, '%27')
              .replace(/\//g, '%2F')
              .replace(/\"/g,'%22')
              .replace(/\?/g,'%3F')
              .replace(/\#/g,'%23')
              .replace(/\^/g,'%5E')
              .replace(/\\/g,'%5C')
              .replace(/\&/g,'%26')
              .replace(/\!/g,'%21')
              .replace(/\~/g,'%7E')
              .replace(/\$/g,'%24')
              .replace(/\*/g,'%2A')
              .replace(/\@/g,'%40')
              .replace(/\_/g,'%5F');
        return str;
    }
     

     
  • 相关阅读:
    github替代品
    【推荐】通用全面的APP测试用例设计
    Jmeter 性能测试,完整入门篇
    2020年,有哪些特别好用的 app 测试工具?
    如何做好Web端性能测试?
    如何做Web服务的性能测试?
    Office 各版本批量授权(VOL)和激活方法
    django中引用bootstrap的几种方式
    list类型数据执行效率测试
    Linux安装python3环境
  • 原文地址:https://www.cnblogs.com/chengfang/p/2837691.html
Copyright © 2011-2022 走看看