HTML和Javascript混合转义

问题引入
页面中js函数的参数值包含空格、单引号、双引号等特殊字符,如何能正确调用函数?
如点击一个链接,弹出对话框显示 【开始  “双引号中的内容”  '单引号中的内容'  结束】

拼凑了半天字符串,总是无法正确显示,要么浏览器解析HTML报错,要么点击链接无法正确调用js函数。
后来仔细一想,这其实涉及到2个方面的转义
1.HTML的转义。onclick属性的值由双引号包含起来,里面内容的双引号必须转义,否则HTML识别就会出错。在HTML中双引号转义就是使用实体名"
2.js的转义。js的参数由单引号包含起来,参数值中的单引号必须转义,而js的转义是通过"/"+"需要转义的字符",所以单引号就是/'

想明白了这个道理,就很容易实现了。

< html >
    
< head >
    
< script  type ="text/javascript" >         
        
function showEx(msg){
                alert(msg);
            }

    
</ script >
    
</ head >
    
< body >
        
< href ="#"  onclick ="javascript:showEx('开始 &quot;双引号中的内容&quot; '单引号中的内容' 结束');" > click me </ a >
    
</ body >
</ html >

顺手把XHTML中的转义字符贴一下
ASCII Entities with new Entity Names
ResultDescriptionEntity NameEntity Number
"
quotation mark
&quot;
&#34;
'
apostrophe 
&apos; (does not work in IE)
&#39;
&
ampersand
&amp;
&#38;
<
less-than
&lt;
&#60;
>
greater-than
&gt;
&#62;

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值