background-image不能与encodeURIComponent一起使用

时间:2015-03-12 17:59:09

标签: javascript css background-image encodeuricomponent

我期待这个工作

var url = 'http://path_to_some_image.jpg';
$('body').css('background-image', "url('" + encodeURIComponent(url) + "')");

但我发现404找不到错误。 浏览器无法在css中处理编码的网址吗?

如果我使用原始网址,它会起作用,但如果网址包含引号和内容,该怎么办?我必须使用正则表达式手动替换它们:/

1 个答案:

答案 0 :(得分:2)

你应该encodeURI

var url = 'http://path_to_some_image.jpg';
$('body').css('background-image', "url('" + encodeURI(url) + "')");

区别在于

encodeURI 假设输入是一个完整的URI,可能包含一些需要编码的字符。

encodeURIComponent 会对具有特殊含义的所有内容进行编码,因此您可以将其用于URI的组件,例如