HTML和Javascript混合转义

本文探讨了在HTML页面中如何正确地为JavaScript函数传递含有特殊字符的参数,特别是涉及单引号和双引号的转义问题。通过实例演示了如何避免浏览器解析错误,并确保点击链接时能够正确调用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;

 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值