2012-02-09 82 views
6

我有我們的用戶輸入的各種客戶端網站的URL列表...我從服務器加載這個列表到用戶的網格看到...我通過用href HTML標籤包裝它們來使URL可點擊......問題是,有時用戶輸入沒有http://或www的url。前綴等,因此瀏覽器將它們視爲相對URL,這是永遠不會發生的,因爲所有這些網站都是爲我們的客戶提供的,它們都是外部的。有沒有辦法強制這些URL被視爲絕對而不是相對?HTML強制URL超鏈接被視爲非相對(絕對)

下面是一個例子:

<a target='_blank' href='google.com'>google.com</a> 

如果你試試這個,你會發現瀏覽器會認爲它是不應該是這樣的相對路徑。

感謝


解決方案:

我選擇來檢查「//」(因爲我不知道這個協議是什麼 - 可能是HTTP或HTTPS),如果不是發現,我認爲它是一個http網站,我用這個URL作爲前綴 - 所以總之沒有辦法強制瀏覽器將超鏈接視爲絕對

回答

2

爲什麼不預處理輸入並在需要時追加http://

+0

我可以......但有很多變化可以處理,很多網址,有時他們有www。有時他們沒有,並有其他子域名等...沒有你想象的那麼幹淨......我希望有一個更清潔的方式 – Ayyoudy 2012-02-09 16:58:03

+0

只加入http://會工作,這似乎是一個乾淨的只要你不指望他們切換協議,如FTP等... – 2012-02-09 16:59:11

+0

像我說的,有時他們已經有http://所以我仍然必須檢查 – Ayyoudy 2012-02-09 17:00:00

0

的相對URI。

如果你想鏈接到http://google.com/那麼這就是你需要鏈接到的地方。

您可以調整要包裝的URI,也可以嘗試從算法上猜測它是否打算成爲相對鏈接。

請注意,您不能安全地假設應該有一個www。由於網站的使用僅僅是一個約定,不再是一個強烈的約定。

0

您可以在url之前添加//,這應該工作。