0

私はこれが機能することを期待していました

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

しかし、404 not found エラーが発生します。ブラウザが css でエンコードされた URL を処理できない理由はありますか?

生の URL を使用すると機能しますが、URL に引用符などが含まれている場合はどうなりますか? 正規表現を使用して手動で置き換える必要があります:/

4

1 に答える 1

2

やったほうがいいencodeURI

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

違いは

encodeURIは、入力が完全な URI であり、エンコードが必要な文字が含まれている可能性があると想定しています。

encodeURIComponentはすべてを特別な意味でエンコードするため、次のような URI のコンポーネントに使用します。

于 2015-03-12T18:14:35.317 に答える