问题引入
页面中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>
<a href="#" onclick="javascript:showEx('开始 "双引号中的内容" '单引号中的内容' 结束');">click me</a>
</body>
</html>
顺手把XHTML中的转义字符贴一下
页面中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>
<a href="#" onclick="javascript:showEx('开始 "双引号中的内容" '单引号中的内容' 结束');">click me</a>
</body>
</html>顺手把XHTML中的转义字符贴一下
ASCII Entities with new Entity Names
| Result | Description | Entity Name | Entity Number |
|---|---|---|---|
|
"
|
quotation mark
|
"
|
"
|
|
'
|
apostrophe
|
' (does not work in IE)
|
'
|
|
&
|
ampersand
|
&
|
&
|
|
<
|
less-than
|
<
|
<
|
|
>
|
greater-than
|
>
|
>
|
本文探讨了在HTML页面中如何正确地为JavaScript函数传递含有特殊字符的参数,特别是涉及单引号和双引号的转义问题。通过实例演示了如何避免浏览器解析错误,并确保点击链接时能够正确调用JavaScript函数。
1119

被折叠的 条评论
为什么被折叠?



