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‘);
时间: 2024-12-12 17:43:57

Uncaught SyntaxError : Unexpected token ILLEGAL js传递带空格的参数的相关文章

前端javascript 错误 Uncaught SyntaxError: Unexpected token ILLEGAL

前端控制台报Uncaught SyntaxError: Unexpected token ILLEGAL 错误时,就是非法字符错误,首先检查符号是否正确,不要出现中文标点! 然后检查参数之类的类型是否正确,有的是字符串,如果没有加引号也会爆这个错误. 最近写了两天前端,相对来说,错误都是些低级错误,但是莫名其妙不好判断, 主要还是检查类型.符号使用准确

Uncaught SyntaxError: Unexpected token ILLEGAL

<input id="btn_0_4EAE4F474C91156086C0D4EA7E983C69C215B649" type="button" value="连接" onclick="middleware_connect(0, 4EAE4F474C91156086C0D4EA7E983C69C215B649)"> 经过查看源码可以发现"onclick="middleware_connect(0

Uncaught SyntaxError: Unexpected token )

今天在写代码时突然遇到这个错误"Uncaught SyntaxError: Unexpected token )",重点是它在google的console里面不提示是哪一句出错了,而且仿佛是在误导你,看这句话好像是说哪里缺了一个“)”,但是不是这样的.出现这个错误如果是因为点击了一个a标签,那个原因很可能就是出在这一句:href="javascript:void(0);",我们很多时候写js为了表示不做任何操作,防止链接跳转到其他页面,就会选择加这句话.但是记住:请

JSP页面报错:“Uncaught SyntaxError: Unexpected token &lt;”

最近在做一个个人主页博客网站的项目,遇到了这个问题. 当浏览器该页面提示错误"Uncaught SyntaxError: Unexpected token <"时,浏览器通常情况下不能够准确地标记该错误发生的位置,浏览器通常会将其标记在页面的顶行代码,即<html>标签附近,故无法直接找出错误的原因. 该错误其实是由于使用了过时(不推荐)的JavaScript标签语句造成的. 举个例子: 1 <script src="#" language=

Uncaught SyntaxError: Unexpected token &#39; in JSON at position 1

听说js是一样很BT的语言,今天真是有点领教到了. 用python3.6+django2.0开发网站时,遇到了一个坑中之坑! 在异步数据提交Ajax的运用中,不免在回调函数中使用到JSON.parse(data) 浏览器控制台Console报错: VM493:1 Uncaught SyntaxError: Unexpected token ' in JSON at position 1 at JSON.parse (<anonymous>) at Object.success ((index)

Uncaught SyntaxError: Unexpected token &lt;解决方法

最近剥离基础框架的公共部分,早上有个页面部分流程未加载出来,报了Uncaught SyntaxError: Unexpected token <,网上搜了下 错误原因:js脚本中非正常引用外部的文件时,会报 Uncaught SyntaxError: Unexpected token < 这种错误.一开始没看出来哪里有问题,之前还好好的. https://www.cnblogs.com/sxdcgaq8080/p/6743638.html提到时shiro配置问题,刚好我们那个老框架用了,仔细排

【Vue中的坑】Vue打包上传线上报Uncaught SyntaxError: Unexpected token &lt;

今天在vue打包上传线上后,报一下错误,一下就懵了,这可咋整啊,一如既往的想都没想就开始复制错误,上网开搜 Uncaught SyntaxError: Unexpected token < Uncaught SyntaxError: Unexpected token < Uncaught SyntaxError: Unexpected token < 网上搜的大致有几种 1.因为vue在打包上传的时候不会编译es6,需要安装babel来将es6转成es5 . 2.在经过build/web

Vue项目报错:Uncaught SyntaxError: Unexpected token &lt;

摘自:https://www.jb51.net/article/150517.htm 遇到问题: 今天做一个 VUE 的项目,在引入第三方依赖的 JS 文件时,遇到了一个问题: 控制台的提示:Uncaught SyntaxError: Unexpected token < 按照提示进入文件,再看如下图: 仔细看了看 index.html 文件,发现原本我的 JS 文件是放在 /src/utils 文件夹下的,但引入 /src 和 /static 的文件是有区别的. 解决方案: 解决办法是将第三方

关于Uncaught SyntaxError: Unexpected token o in JSON at position 1,chrome持续报错的相关解析

今天跟大家分享我前两天遇见的一个BUG,说出来很难受,因为这个BUG花了我一个多小时去找原因,后来莫名其妙的故障消失了,强迫症犯了的我,居然花了2个多小时去故意再制造这个BUG,只想弄明白WHY???结果大家应该都猜到了,哈哈,没找到!!!没错,居然没找到!!!不过类似于Uncaught SyntaxError: Unexpected token ' in JSON at position 2的错误... 关于JOSN的方法,大家通过百度应该都深刻理解它的用法:parse用于从一个字符串中解析出