Javascript函数中传递带空格的参数
2015-12-08 12:56
651 查看
通常在页面中要让某些内容点击后产 生点击事件(非页面跳转)都会使用onclick,但是这样不适于需要传递参数的情况,于是写成直接调用Javascript函数的方式:<a href=javascript:somefunction(args)>content</a>。注意,这么写是有问题的,问题就在 于somefunction中的参数args的值不能含有空格,否则浏览器会认为空格后面的内容是<a>标签的某个属性,正确的写法应该是用 引号将javascript:somefunction(args)引起来。另外还有一种方法可不必加这对引号,先将可能带空格的参数用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。
在网上找了下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。
相关文章推荐
- 几种检验数字的方法区别 isNaN、isFinite
- 【JSON解析】JSON解析
- js获取浏览器信息
- js console 函数详解(js开发调试的利器)即 Firebug控制台
- js实现兼容IE、Firefox的图片缩放代码
- Javascript 获取浏览器窗口中文档(视口)可用尺寸的方法
- json数组传递到后台controller
- 新浪滚动新闻的json数据获取页面
- JS实现按比例缩放图片的方法(附C#版代码)
- JavaScript中window.open用法实例详解
- JS获取文件大小方法小结
- 如何注册删除自己的js库到bower私库
- Javascript中document.execCommand()的用法
- js 点击默认另存 ,不是打开 Blob 操作
- 将普通的数字转为color值,java和javascript的区别
- javascript之window对象详解
- javascript之window对象
- javascript 导出div为图片PNG,div转svg,svg转canvas
- 自定义jstl fn函数fns
- javascript中window.event事件用法详解