Uncaught SyntaxError : Unexpected token ILLEGAL js传递带空格的参数
通常在页面中要让某些内容点击后产生点击事件(非页面跳转)都会使用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。
if(all.aData.photo != ""){
var a = escape(all.aData.wt);
return "<a onclick=\"infoOperation('" +a+"','"+all.aData.thly+"','"+all.aData.photo+"')\" href=\"#\" title = '查看所有'><font color=blue>" + all.aData.wt.substr(0 , 30)
+ "</font><img title='有图片' src="+contextpath+"/business/question/images/ytp.jpg></a>";
}
else{
var a = escape(all.aData.wt);
return "<a onclick=\"infoOperation('" + a+"','"+all.aData.thly+"','"+all.aData.photo+"')\" href=\"#\" title = '查看所有'><font color=blue>" + all.aData.wt.substr(0 , 30)
+ "</font></a>";
} function infoOperation(str,thyy,photo){
var url = encodeURI(contextPath+"/business/question/wtfk/wtfkxq.jsp?str="+str+"&thyy="+thyy+"&photo="+photo);
top.openDialog(contextPath+"/business/question/wtfk/wtfkxq.jsp?str="+str+"&thyy="+thyy+"&photo="+photo,{height:515,width:1100,title:"查看照片"}); }
var str =unescape($().getParmByUrl('str'));
var thyy = $().getParmByUrl('thyy');
var photo = $().getParmByUrl('photo');
Uncaught SyntaxError : Unexpected token ILLEGAL js传递带空格的参数的更多相关文章
- JS错误:Uncaught SyntaxError: Unexpected token ILLEGAL
$('tbody', '#' + tableId).append('<tr onmouseover="this.style.backgroundColor=\'#eeeeee\'&qu ...
- 前端javascript 错误 Uncaught SyntaxError: Unexpected token ILLEGAL
前端控制台报Uncaught SyntaxError: Unexpected token ILLEGAL 错误时,就是非法字符错误,首先检查符号是否正确,不要出现中文标点! 然后检查参数之类的类型是否 ...
- 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL
在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...
- Uncaught SyntaxError: Unexpected token ILLEGAL【js错误】
应该是逗号的中英文状态错了,应该是英文状态的逗号.还有百度应用后面的逗号.college后面的冒号
- Uncaught SyntaxError: Unexpected token ILLEGAL
原因,相关的JS函数中,存在一个中文逗号,修改即可正常执行
- 【JS-Java-EL】JavaScript和Java(EL表达式)引发的 Uncaught SyntaxError: Unexpected token ILLEGAL
2018.10.14 BUG原因: 在较早期的代码中,容易出现 JS 拼接 HTML 代码字符串的情况.如 // 页面 test.jsp 内部的 JS 代码 // ${} JSP中EL语法,内部为Ja ...
- js Uncaught SyntaxError: Unexpected token错误
今天遇到js报错Uncaught SyntaxError: Unexpected token 不知道是什么原因,并且js还会继续往下执行. 经过排查竟然是在保存行的上面有个if少一个大括号,真是坑爹啊 ...
- js多条件if语句简写发生Uncaught SyntaxError: Unexpected token }
改写原生js 多条件if判断语句时,采用三元方法,发生Uncaught SyntaxError: Unexpected token } function compareImgSize() { var ...
- 【shiro】使用shiro搭建的项目,页面引用js,报错:Uncaught SyntaxError: Unexpected token <
使用shiro搭建项目过程中,总是出现登录页面 登录第一次有效果,登陆第二次出现302状态码,第三次又有效果,第四次又没有效果的局面. 因此,采用ajax提交页面登录的用户名和密码,但是在引用js的过 ...
随机推荐
- 关于centos6.5系统安装FTP服务和配置的方法
一般在配置服务器的时候,涉及到代码上传,通常都要用到FTP方式. 1.先查看系统是否安装vsftpd: rpm -qa | grep vsftpd 如果出现vsftpd-2.2.2-14......字 ...
- JavaScript网页制作特效
一.什么是JavaScript? 网页交互特效的脚本语言. 特效 二.BOM对象 能够使得JavaScript和浏览器进行对话. 主要是使用Window对象进行操作. History对象:历史,可以实 ...
- github修改自己的昵称
由于刚接触github,不会用,就随便写了个昵称,后来想改,却不知道从哪里改,到百度搜结果都是说不能修改的(这里就不吐槽百度了),还是直接上图吧. 点击Settings,然后跳转到下面界面,点击Acc ...
- osgi与webservice
osgi简介: http://osgia.com/ http://blog.csdn.net/xiaokui008/article/details/9662933 http://wdhdd889.it ...
- String在JAVA里是固定长度的吗?为什么可用“+”连接
所谓长度固定不是你理解的意思而是说String类中存储的char[]是final的,不能修改,你对String的操作实际上是产生了一个新的String,对于某一个String来说,长度就是固定的了 S ...
- iOS9.3 Could not find Developer Disk Image 真机调试错误解决办法
昨天手机系统升级9.3,到了公司真机测试的时候发现Xcode(7.2.1)报错:Could not find Developer Disk Image , 这是因为我的Xcode7.2中还没有支持9. ...
- iOS更改ShareSDK默认的分享功能界面
ShareSDK的集成这里就不详细介绍了, 官网的都已经够详细了.. 官方的默认分享样式如下: 贴上我的源代码: // 创建分享图片 NSString *imageURLString = @" ...
- ContentProvider URI的组成
ContentProvider URI由哪几部分组成 ContentProvider URI与HTTP URI类似,由以下4部分组成: 1.content:// 相当于HTTP URI中的http ...
- JQuery里属性赋值,取值prop()和attr()方法?
1.赋值的时候 如果是<input type="checkbox" checked>这样的只有属性名就能生效的属性 推荐prop,即:$('input').prop(' ...
- php计算剩余时间的自定义函数
把两个日期格式的字符串转化成unix时间戳,然后相减获得时间戳差,最后判断剩余时间,生成类似(2小时30分钟20秒前发布)这样的时间格式,代码如下: function gettime($time_s, ...