2010-11-25 48 views
1

我的一些用戶正在創建一個看起來像瀏覽器如何解釋以「http:/」開頭的hrefs?

<a href='http:/some_local_path'>whatever</a> 

我注意到,火狐將此解釋爲

<a href='/some_local_path'>whatever</a> 

能否在這所有的瀏覽器發生數鏈接?或者我應該自己刪除http:/

+0

你最好確保這永遠不會發生。第一種形式是無效的,沒有人能保證它會按預期工作。第二個是好的,但。 – jwueller 2010-11-25 02:03:17

回答

4

這是一個不尋常的網址,但並非無效。 URL規範指出,省略的組件默認爲基礎url,可以在<base>標記中明確提供,或缺少該頁面的當前URL。

當瀏覽器看到/some_local_path時,它缺少一個方案和一個主機,所以它從基礎URL中取出它們。當你的用戶把http:/some_local_path,它有一個明確的計劃,但缺少一個主機,所以主機默認爲基地網址。如果您的頁面是http:頁面,那麼這兩個URL將被解釋爲相同。

所有這些說,這些網址幾乎肯定不是你的用戶想要的。如果你指出他們的錯誤,你會幫助他們。

1

最好驗證用戶輸入的數據。不可避免的是,你會得到一些意想不到的東西。