2012-02-09 104 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之前添加//,这应该工作。