当前位置: 电脑软硬件应用网 > 设计学院 > 网络编程 > javascript > 正文 |
|
|||
解决JS使用Eval传递参数单引号出错的问题 | |||
2010-3-19 9:04:00 文/佚名 出处:cnblogs | |||
问题示例: <HTML> <BODY> <script> var test = {show:function(str){alert(str);}} var s = "ffd'd" ; eval("test.show('" +s + "')"); </script> </BODY> </HTML> 执行会报缺少')' 方法一:把方法参数作为JS类的属性 <script> var test = {show:function(){alert(this.str);},str:''}; var s = "ffd'd" ; test.str = s; test.show(); </script> 方法二: 使用call <script> var test = {show:function(str){alert(str);}}; var s = "ffd'd" ; var func = eval("test.show"); func.call(func,s); </script> 方法三: 使用转义符 <script> var test = {show:function(str){alert(str + 'test');}} var s = "ffd'd" ; eval("test.show('" +s.replace(/\\/g,"\\\\").replace(/'/g,"\\\'") + "')"); </script> |
|||
关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 | |
Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号 |