2012-02-01 37 views
0

在.load()調用某些內容(帶圖像)後,某些用戶的配置文件映像路徑被破壞...任何想法爲什麼使用jquery-ajax一些img src用'%20'預充?

而且我不確定是否是巧合,但它只會發生在opengraph中:

一個例子;

蔭試圖recive <div class="user"><img src="https://graph.facebook.com/652286316/picture" /></div>

,但我得到<div class="user"><img src="%20https://graph.facebook.com/652286316/picture" /></div>

任何想法,爲什麼會這樣呢?

+2

你可能已經在url前加了一個空格.. !! – 2012-02-01 09:00:19

+0

奇怪......好吧,我確定你已經想通了,'%20'是一個HTML編碼的空格字符,但是沒有看到提供你的加載腳本的頁面,很難看到空間的位置可能來自於。你是否明確告訴jQuery期待HTML結果呢? – 2012-02-01 09:01:35

+0

問題是,當我加載頁面沒有Ajax的圖像路徑是好的,只有當加載在ajax:S – 2012-02-01 09:12:54

回答

1

只是想補充一點,如果你沒有訪問腳本餵你的src圖像(例如,從一些外部服務中獲取數據的時候),你總是可以使用像這樣更換%20 (在JavaScript)

function str_replace(needle, replacement, haystack) { 
var temp = haystack.split(needle); 
return temp.join(replacement); 
} 

然後用

var $new_src = str_replace('%20', '', $old_src); 

請注意,這個假設所有空間 - %20 - 在你的IMG SR無用c,可能不是這種情況

ps。 :這不能解決問題,只是避免它..你可能想看看你的代碼有什麼問題

1

您可能會在url.Remove前面增加了一個空間的空間,你會沒事的......

,或者你可以在src字段輸入之前剝離空間。

1

您應該考慮修剪圖像名稱。通過這種方式,您不僅可以防止前面的任何尾隨空格,還可以防止在圖像名稱末尾出現空格。對於您的更多項目:同樣,虛擬形象名稱中的空白可能會導致問題。你應該用下劃線'_'或破折號'-'替換它。

trim(str_replace(' ', '_', $imgName)); 
相關問題