javascript - javascript 中的 URL 编码

标签 javascript jquery

我将一个 div 与从服务器端方法返回的图像列表绑定(bind)在一起。

如下所示:

  $("#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="" />

我试过像这样 src="+ encodeURI(data.d[i])+" 内置函数编码的 javascript 但我的 img 仍然像第二种情况一样呈现..请有人帮助我

最佳答案

按照@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] ) + "\" ....

关于javascript - javascript 中的 URL 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26629965/

相关文章:

javascript - 从文件加载脚本的最佳方法是什么?

jQuery 变量和对象缓存

javascript - 如何手动拖动和调整图像直到它适合css中的特定框

javascript - 添加缩放会破坏菜单滚动功能

javascript - 如何更改 Bootstrap 弹出窗口箭头的大小

jquery - 使用 jQuery 重新定位元素

jquery - 查找上一个带有类的表行

javascript - 如何正确配置这个虚拟 Angular 项目

javascript - 如何构建一个基于 AJAX 的网站,同时对搜索引擎和浏览器都友好?

javascript - 是否可以在 `conf.js` 内创建函数?