通常在页面中要让某些内容点击后产生点击事件(非页面跳转)都会使用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传递带空格的参数的更多相关文章

  1. JS错误:Uncaught SyntaxError: Unexpected token ILLEGAL

    $('tbody', '#' + tableId).append('<tr onmouseover="this.style.backgroundColor=\'#eeeeee\'&qu ...

  2. 前端javascript 错误 Uncaught SyntaxError: Unexpected token ILLEGAL

    前端控制台报Uncaught SyntaxError: Unexpected token ILLEGAL 错误时,就是非法字符错误,首先检查符号是否正确,不要出现中文标点! 然后检查参数之类的类型是否 ...

  3. 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL

    在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...

  4. Uncaught SyntaxError: Unexpected token ILLEGAL【js错误】

    应该是逗号的中英文状态错了,应该是英文状态的逗号.还有百度应用后面的逗号.college后面的冒号

  5. Uncaught SyntaxError: Unexpected token ILLEGAL

    原因,相关的JS函数中,存在一个中文逗号,修改即可正常执行

  6. 【JS-Java-EL】JavaScript和Java(EL表达式)引发的 Uncaught SyntaxError: Unexpected token ILLEGAL

    2018.10.14 BUG原因: 在较早期的代码中,容易出现 JS 拼接 HTML 代码字符串的情况.如 // 页面 test.jsp 内部的 JS 代码 // ${} JSP中EL语法,内部为Ja ...

  7. js Uncaught SyntaxError: Unexpected token错误

    今天遇到js报错Uncaught SyntaxError: Unexpected token 不知道是什么原因,并且js还会继续往下执行. 经过排查竟然是在保存行的上面有个if少一个大括号,真是坑爹啊 ...

  8. js多条件if语句简写发生Uncaught SyntaxError: Unexpected token }

    改写原生js 多条件if判断语句时,采用三元方法,发生Uncaught SyntaxError: Unexpected token } function compareImgSize() { var ...

  9. 【shiro】使用shiro搭建的项目,页面引用js,报错:Uncaught SyntaxError: Unexpected token <

    使用shiro搭建项目过程中,总是出现登录页面 登录第一次有效果,登陆第二次出现302状态码,第三次又有效果,第四次又没有效果的局面. 因此,采用ajax提交页面登录的用户名和密码,但是在引用js的过 ...

随机推荐

  1. i利用图片按钮 和 input type="image" 为背景提交表单

    <img src="img/cancel.jpg" onclick="javascript:document.getElementByIdx_x('loginFor ...

  2. (转)html5 Placeholder属性兼容IE6、7方法

    使低版本浏览器支持Placeholder有很多方法,都不是很完美,或多或少有点问题,且有些原生支持的浏览器在获得焦点时会清空Placeholder提示.发现zhihu的解决方法不错,特记录下 wind ...

  3. Android开发手记(12) Menu的使用

    Android中的Menu分为三种,分别为:OptionsMenu(选项菜单).ContextMenu(上下文菜单).SubMenu(子菜单). 1.OptionsMenu 按Menu键就会显示,用于 ...

  4. 在Oracle中查询表的大小、表的占用情况和表空间的大小

    转载自http://blog.csdn.net/cuker919/article/details/8514253 select segment_name, bytes as 大小 from user_ ...

  5. IPTV中的EPG前端优化

    先看一下IPTV相关情况: l 目前TPTV市场情况 a) 截止今年2月,全国IPTV总用户数达3630.2万,我国移动互联网用户规模接近9亿,人均月接入量近300M,8M宽带达半数,光纤近4成. 图 ...

  6. Objective-C学习篇09—NSNumber与笑笑语法

    NSNumber 由于数组,字典,集这三个容器中只能存放对象类型的数据,如果想把基本数据类型的数据存放到这三个容器中,需要把基本数据类型转化为对象类型,此时就要借助于NSNumber 这个类. NSN ...

  7. ubuntu11.10(TQ210)下移植boa服务器

    平台:ubuntu11.10 一.下载源码包www.boa.org   boa-0.94.13.tar.gz 二.解压,在其src目录下生产makefile #tar xvfz  boa-0.94.1 ...

  8. mongo学习整理

    mongo做为NOSQL家族中一员,被广泛使用以及应用到生产环境中,有其出色的性能.关系型数据库(RDBMS )在互联网中依然是不可替代的一部分,mongo基于NOSQL的特性,在程序中RDBMS不适 ...

  9. HTML5 canvas中的转换方法

    转换方法 scale(scalewidth,scaleheight)                缩放当前绘图至更大或更小 scalewidth         缩放当前绘图的宽度 (1=100%, ...

  10. jquery在不同浏览器获取文件路径出现问题!

    <input type="file" name="file" id="file1" src=""/> < ...