原始代码:<a onclick='send("'>11");' href='www.baidu.com'>超链接</a>
我试了下面的转义方法,不起作用:<a onclick='send(encodeURI("'>11"));' href='www.baidu.com'>超链接</a>
错误的结果是:11");' href='www.baidu.com'>超链接
期望的结果是:超链接
请问下如何转义?(send函数里面的参数是变量,不是写死的)

解决方案 »

  1.   

    是后台的数据,用el表达式展示,<a onclick='send("${fromHoutai}");' href='www.baidu.com'>超链接</a>.
    您说的“先把 变量 转为实体”是什么意思啊?能解释下吗?谢谢!
      

  2.   

    http://www.w3school.com.cn/html/html_entities.asp
      

  3.   

    个人看了纯粹字符串拼接问题。'<a onclick=\'send("\'>11");\' href=\'www.baidu.com\'>超链接</a>'
      

  4.   

    <a onclick="send(\"${fromHoutai}\");" href='www.baidu.com'>超链接</a>

    <a onclick="send(this.alt);" alt="${fromHoutai}" href='www.baidu.com'>超链接</a>
      

  5.   

    给你一段java 的字符串转js的函数
    public static String escape(String s){
    if(s==null)
    return null;
    StringBuffer sb=new StringBuffer();
    for(int i=0;i<s.length();i++){
    char ch=s.charAt(i);
    switch(ch){
    case '"':
    sb.append("\\\"");
    break;
    case '\\':
    sb.append("\\\\");
    break;
    case '\b':
    sb.append("\\b");
    break;
    case '\f':
    sb.append("\\f");
    break;
    case '\n':
    sb.append("\\n");
    break;
    case '\r':
    sb.append("\\r");
    break;
    case '\t':
    sb.append("\\t");
    break;
    case '/':
    sb.append("\\/");
    break;
    default:
    if(ch>='\u0000' && ch<='\u001F'){
    String ss=Integer.toHexString(ch);
    sb.append("\\u");
    for(int k=0;k<4-ss.length();k++){
    sb.append('0');
    }
    sb.append(ss.toUpperCase());
    }
    else{
    sb.append(ch);
    }
    }
    }//for
    return sb.toString();
    }
      

  6.   


    <a onclick='send("\'>11");' href='www.baidu.com'>超链接</a>