缺少十六进制数字

虽不简单 2012-02-16 09:19:05
OpenURL("$!aaaa"); 我用js打开一个连接,这个链接是个附件pdf格式的文件,$!aaaa有值,是个路径比如/a/b/c/d.pdf这样然后报缺少十六进制数字 这样的错误。 该咋处理呢?
...全文
177 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaoshuaishuai 2014-08-01
  • 打赏
  • 举报
回复
应该是你路径中有数字,然后加上路径上的/,JS认为是十六进制的数字,你把/换一下就行了
虽不简单 2012-02-16
  • 打赏
  • 举报
回复
木有人?
前些天在做项目时遇到一个很大的困难,就是在javascript中动态创建一个链接,链接到服务器上的某个附件,点击它就可以查看或是下载。代码我都已经写好如下: function createHref(pathname){ var newHref=document.createElement("a"); newHref.href="OneDownloadServlet?pathname="+ pathname; } 页面中将服务器上链接到该附件的绝对地址作为参数pathname的值传递给createHref(pathname)函数,可是页面在加载时总是无法将pathname传递给该函数,调试时IE报”缺少十六进制数字”这样的错误,实在是看不懂什么意思,于是上网百度,果然有很多人都遇到了这样的问题.原来是javascript在提交数据时若遇到”\”会把它当做javascript的特殊字符对待(相当于关键字),从而打乱了javascript代码,导致错误.而我的pathname由于是绝对地址,包含了很多个”\”,所以报错。解决办法是将”\”替换成”\\”即可!网上有一个通用的转码组件,不仅可以转换javascript的,还可以转换html,xml等的特殊字符,许多帖子都转载了它。但是我对它进行了测试,发现有很多错误,或者是函数过期,或者是替换字符串写错,还有对javascript的转换函数中缺少对”\”的转换.于是对其进行了修正,然后测试就成功了!比如我上面的例子,若使用该组件的话只需要: pathname= CommStr.jsEncoder(pathname)即可!现在我把该帖子贴出来,给大家参考,如还有错误,欢迎指正!

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧