2014-10-29 92 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