Javascript函数中传递带空格的参数
通常在页面中要让某些内容点击后产 生点击事件(非页面跳转)都会使用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。
最新文章
- 在Android上使用qemu-user运行可执行文件
- 创建 floating IP - 每天5分钟玩转 OpenStack(106)
- 大素数测试 求因子 poj 1811
- HandlerMapping 详解
- 【浏览器渲染原理】渲染树构建之渲染树和DOM树的关系(转载 学习中。。。)
- linux 下按在sqllite
- <;你不知道的JavaScript>;读书笔记
- C++中头文件(.h)和源文件(.cpp)都应该写些什么
- Ubuntu14.04 工作区设置
- 【Learning】带花树——一般图最大匹配
- Java遍历二叉树深度宽度
- js坚持不懈之13:JavaScript查找HTML元素的方法
- [Linux]fcntl函数文件锁概述
- Python_day_01
- Mybatis判断map参数是否存在
- 小结:ES7——async和await初识
- 笔记 : Ubuntu部署LNMP环境
- Web of Science API
- Android NDK开发篇(六):Java与原生代码通信(异常处理)
- sqlmap简单使用方法