js方法传参 参数值带单引号,冲突,如何转义.

<s:iterator value="relaxList" status="rl">
<a onclick="downMusic('<s:property value="top.rs_nm"/>')
如上,rs_nm 值里面有单引号 需要转义.
把代码补充全点。jsp: <td align="center"><img width="12" height="14" src="../../images/ico_download.gif" />
<a onclick="downMusic('<s:property value="top.rs_nm"/>','<s:property value="top.rs_user"/>','<s:property value="top.rs_size"/>','<s:property value="top.rs_cost"/>','<s:property value="top.rs_path"/>','<s:property value="top.rs_type.rs_type"/>')" href="javascript:void(0);">下载</a>
</td>

js: function downMusic(rsnm,rsuser,rssize,rscost,url,rstype){
............
}

list迭代,当rs_nm的值里面包含引号时 ,'<s:property value="top.rs_nm"/>' 就会起冲突. js调用出错.
所以我想在这部转义掉. 请教。

第1个回答  2011-12-01
传输的时候使用URL编码,var strValue= encodeURI(top.rs_nm);
使用的时候在解码:var strDvalue = UrlDecode(Request["strValue"]);追问


')" href="javascript:void(0);">下载

因为我使用的struts2标签,我需要在value=“” 这里面转义. 有办法吗。
我用 #%{URLEncoder.encode(top.rs_nm,'UTF-8')} 但值为空。

追答

struts2不太熟悉,但是思路应该就是这样~~~~
js传参数,一般都是要使用URL编码,编码之后再传输;接收端,使用URL接收方,使用URL解码,~~~~

追问

哦,我这种情况,触发这个事件,就会报错. 所以,我想把value里面值转义掉.
嗯,谢谢你了.

第2个回答  推荐于2016-06-18
<s:iterator value="relaxList" status="rl">
<a onclick="downMusic('<s:property value=\"top.rs_nm\"/>')追问

这么用转义符语法有问题,报错.

追答



')" href="javascript:void(0);">下载

本回答被提问者采纳
第3个回答  2011-12-02
escape

单引号直接转成:& a c u t e ;

js方法传参 参数值带单引号,冲突,如何转义.
单引号直接转成:& a c u t e ;

javascript 函数传值单引号、双引号问题
JS中的+号是重载运算符,在这里表示的是“连接符”,标准定义是起到连接两个字符串的作用。LZ仔细看,funC是被双引号括起来的,所以里面的引号则必须使用单引号,这样交替使用引号是为了避免引号的解释错误,交替使用引号就省去了转义的麻烦。而+ 变量 +的写法,如果你不这样写,变量将被当做字符串来...

JS中双引号单引号,转义字符问题!!
html的双引号是正常的吧,每一个属性,例如:value="",一般都有双引号包着。但是用js添加页面节点的时候,需要转义,比如:var html = "<div onclick=\\" openUrl( ' ' ) \\">";document.getElementById("main").innerHTML = html;看到最外面的那个双引号的了吗,是表示一个字符串变量的...

js里面的单引号和双引号有什么区别??
而且单引号和双引号可以混合使用,但混合使用时需要注意。情况一般出现在js拼接字符串里面,或者html元素的属性里面:单引号和双引号必须成双成对的出现,可以单引号在外面,也可以双引号在外面:var a="'你好'";\/\/这里变量a的内容就是字符串'你好',这里的单引号也是字符串的一部分 var b='"你好"'...

调用javaScript函数时,参数带双引号怎么解决?
在action里面就把含有双引号的字符串处理掉,然后再传,或者用split("\/""\/")(这里使用转义,具体是不是这么写的忘记了。)存放到数组,到页面上以后再取出来,祝楼主 好运,一定会解决的。

js函数参数有双引号的解决方法
var temp = '调用的东西有"双"引号';show(temp);

js如何拼接多个变量的值
js拼接多个变量的值的方法:1、在html代码中需要加入某个变量,通过单引号双引号拼接。2、通过转义字符拼接。

介绍一点js加密的方法
1、base64加密在页面中引入base64.js文件,调用方法为: var b = new Base64(); var str = b.encode("admin:admin"); alert("base64 encode:" + str); str = b.decode(str); alert("base64 decode:" + str); 2、md5加密在页面中引用md5.js文件,调用方法为 var h...

请问aspx.net页面间参数传递中,如何加入单引号?
sele = "wenjianbianhao like \\"%" + TextBox1.Text.ToString().Trim() + "%\\" and ";或者 sele = "wenjianbianhao like \\\\'%" + TextBox1.Text.ToString().Trim() + "%\\\\' and ";你JS程序是用的单引号,只需要字符串中改成双引号或者把字符串中的单引号加个转义字符就OK了 ...

Linux下配置文件中参数带引号和不带引号的区别
4、" 双引号 这四个字符在双引号中是具有特殊含义的,其他都没有,而单引号使所有字符都失去特殊含义 如果用双引号,查找一个\\,就应该用四个\\:grep "\\\\\\" file 这样就对了,这样等同于:grep '\\\\' file 第一条命令shell把四个\\,转义成2个\\传递给grep,grep再把2个\\转义成一个\\查找 第...

相似回答