2014-10-29 96 views
1

我绑定了从服务器端方法返回的图像列表的div。在javascript中的Url编码

象下面这样:

$("#GalleryPhotos").append("<div class='thumbnail'><a rel='group1' data-caption='caption' class='fancybox' href=" + data.d[i] + "><img height='120' width='150' src=" + data.d[i] + "></img></a> </div> "); 

我会得到完整的URL

< img src= "/UploadedFiles/Gallery/CricketAlbum/5335.jpg" /> 

这是正确显示如果在文件名中没有空间,但在情况下,如果没有在文件名称中的空格它被渲染为:

< img src="/UploadedFiles/Gallery/Birdst" album="" sample_05.jpg="" /> 

我试过JavaScript的内置函数编码这样SRC = “+是encodeURI(data.d [1])+”但是我的IMG在第二case..Please越来越呈现为帮我有人

+4

顺便说一下,''是一个无效元素,它没有结束标记。如果你追加到现有的URL,你需要'encodeURIComponent()',而不是'encodeURI()'。 – 2014-10-29 12:11:09

+1

不,你应该做decodeURI吗? – 2014-10-29 12:12:06

+0

我在想mi8不是问题,如果是实际问题所有具有空间和空间的图像名称都不应该高于100.plz纠正我,如果我错了 – user3452210 2014-10-29 12:13:03

回答

2

至于建议的@DavidThomas,使用encodeURIComponent()

.. width='150' src='" + encodeURIComponent(data.d[i]) + "'></a> .. 

特别注意

这是不工作的主要原因是因为你没有把的src值引号。实际上你写的是:

<img src=/UploadedFiles/Gallery/Birdst album sample_05.jpg /> 

哪一个会处理你看到的奇怪属性。但是,如果您曾引用的值,该URL可能也工作过:

< img src='/UploadedFiles/Gallery/Birdst album sample_05.jpg' /> 

的代码已经应:

.... src='" + data.d[i] + "'>.... 

或者:

.... src=\"" + data.d[i] + "\">.... 

现在你知道但是,多数情况下,转义URL总是比较安全的,因为未转义的字符可能会在某些系统中产生不希望的结果:

.... src=\"" + encodeURIComponent(data.d[i]) + "\" .... 
+0

只需encodeURIComponent工作我...但你曾经建议过的也是值得的 – user3452210 2014-10-30 05:37:31

+0

太棒了!请接受这个答案'iff'这是有帮助的。 – PeterKA 2014-10-30 10:09:48

+0

但诚实的回答是@David的第一个gven .... + 1为你pete ;-) ..干杯 – user3452210 2014-10-30 10:37:35