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的过 ...
随机推荐
- linux常见设备类型及文件系统
As you can see in Table 14.3 , all disk device names end with the letter a. That is because it ...
- 布局动画 LayoutAnimation
简介 http://blog.csdn.net/pipisky2006/article/details/8317091 补间动画只能对一个控件使用,如果要对某一组控件播放一样的动画的话,可以考虑lay ...
- 重学《C#高级编程》(对象与类型)
昨天重看了下<C#高级编程>里面的对象与类型一章,发现自己有许多遗漏没懂的地方重新弄清楚明白了 先说说什么是对象吧,我个人的感觉是:在编程的世界里,一段程序就是一个事物的处理逻辑,而对象就 ...
- Java请求参数类QueryParameter
import java.util.HashMap; import java.util.Map; import org.apache.commons.lang.StringUtils; /** * 请求 ...
- 秒味课堂Angular js笔记------Angular js中的工具方法
Angular js中的工具方法 angular.isArray angular.isDate angular.isDefined angular.isUndefined angular.isFunc ...
- 使用JQuery获取对象的几种方式
1.先讲讲JQuery的概念 JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队.其实 JQuery是一个JavaScript的类 ...
- (转)SVN详解
原文地址:http://www.weixingon.com/s/visualsvn+%E4%B8%AD%E6%96%87 1.几种代理管理工具的适用场景 A.如果你的项目是5-6人的小团队,那么使用V ...
- Ecstore获取dbschema内容?
有时候在使用dbschema的时候,需要获取dbschema的结构.例如: 那么,我们可以这样写: 这样我就能获得 称呼 这个数组
- (转)精通 JS正则表达式
精通 JS正则表达式 (精通?标题党 ) 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证 ...
- maven项目,去除jar包中的不想要的依赖关系(Document root element "beans", must match DOCTYPE root "null". )
maven dependencies中并不会删除 以下方法maven dependencies中并不会删除,可能程序引入的时候,会去掉这种依赖(猜的) 解释: 就是说项目中要用到某一个a.jar包,通 ...