2010-09-18 55 views
6

我現在在一個文件管理器中工作,在我的簡單cms中使用,並且當它需要一個包含空格的路徑時,我在jquery加載函數中遇到問題。有什麼辦法可以解決這個問題嗎?jquery「加載」的路徑包含空格 - 需要幫助!

<script src="jquery.js"></script> 

    <script> 
     function get_content(){ 
      $("#content").load("uploads/flashes/New folder/target.php") ; 
     } 
    </script> 

    <div id="content"></div> 

回答

17

你可以在 「encodeURIComponent方法」 您的網址:

$("#content").load(encodeURIComponent("uploads/flashes/New folder/target.php")); 

的Javascript encodeURIComponent方法會等同於URLEncode的。

+1

非常好的功能「逃生()」和非常好的用戶「Marc Uberstein」 – 2010-09-18 12:53:08

+0

謝謝!大多數人忘了escape(),這對於前端開發來說是一個非常方便的方法。 – 2010-09-18 13:03:47

+2

**絕不**使用'escape()'。它是一種僅限JavaScript的非標準編碼方案,與URL編碼不同。在這種情況下,使用'encodeURIComponent()'或'encodeURI()'來編碼只有完全無效的字符,如空格。 – bobince 2010-09-18 14:00:21

5

您可以使用%20來表示空格。

$("#content").load("uploads/flashes/New%20folder/target.php"); 

http://www.w3schools.com/TAGS/ref_urlencode.asp


編輯:

如果你不想做手工,你可以use encodeURI() instead。有許多通用的URI字符,它不會編碼,其中escape()會。

+0

謝謝帕特里克dw,它的工作原理。 – 2010-09-18 12:37:07

+0

@user - 不客氣。 :o) – user113716 2010-09-18 12:41:36

+0

@web - 'escape()'可以用於你的例子,但是如果你打算使用方法調用來實現它,那麼你可以使用'encodeURI()',因爲它就是意味着要做。 – user113716 2010-09-18 13:11:04