1、在jquery中动态拼接html代码时
在html上改成单引号,在标签上使用双引号,并使用转义字符,就可以顺利运行了。
最后是这个样子的:
html+='<div><a href="javascript:confirm('+id+',''+name+'');">';
html+='</a></div>';
注,HTML常用的转义字符:
单引号:'
双引号:"
空格:
小于号(<):<
大于号(>):>
与号(&):&
版权号(©):©
2、在html中的方法
方法一:<input οnclick=addToMainPush(‘123’, ‘Test 234’, ‘5’) > 此时第二个参数无法正常传输。
<input οnclick="addToMainPush(‘123’, ‘Test 234’, ‘5’) "> 此时正常传输。
方法二:先将可能带空格的参数用escape函数处理一下,然后在somefunction中用unescape函数解码就行了。注意用encodeURI、decodeURI加解码却不能成功。
escape和unescape、encodeURI和decodeURI、encodeURIComponent和decodeURIComponent三对组合之间的区别:
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
简单总结一下用法,在不经过URL的时候,即纯Javascript调用用escape;
涉及URL时,通常用encodeURI对整个URL进行处理,仅当URL中含有特殊参数时,对该特殊参数局部使用encodeURIComponent。