HTML强制URL超链接被视为非相对(绝对)

Ayy*_*udy 16 html url relative-path href absolute-path

我有一个用户为各种客户的网站输入的URL列表...我正在将此列表从服务器加载到网格中供用户查看...我通过用href HTML包装来使URL可点击标签...问题是,有时用户输入没有http://或www的网址.前缀,因此浏览器将它们视为相对URL,这些URL从来就不是这种情况,因为所有这些网站都是针对我们的客户而且都是外部的.有没有办法强制将这些URL视为绝对而不是相对?

这是一个例子:

<a target='_blank' href='google.com'>google.com</a>
Run Code Online (Sandbox Code Playgroud)

如果你试试这个,你会看到浏览器会认为它是一个不应该是这种情况的相对路径.

谢谢


解:

我选择检查'//'(因为我不知道协议是什么 - 可能是http或https),如果没有找到,我认为它是一个http网站,我用URL作为前缀 - 所以总之,没办法强制浏览器将超链接视为绝对

sed*_*kpc 10

你可以//在url之前添加,这应该工作.

  • 这是比接受的答案更好的解决方案 - 谢谢。 (2认同)

Nav*_*h G 5

为什么不预处理输入并http://在必要时追加?

  • 我可以……但是有很多变体需要处理,有很多 URL,有时它们有 www。有时他们没有并且有其他子域等......不像你想象的那么干净......我希望有一种更干净的方式 (3认同)
  • 好吧,我想我希望有一种方法可以强制浏览器将 URls 视为绝对的。那真的是我的问题(请参阅我原始问题的最后一行)。我不是在问如何将相对 URL 转换为绝对 URL,因为这很简单。我希望有一种方法可以让浏览器意识到你希望它把超链接视为相对链接,而不管它是否被检测到。 (3认同)
  • `assurePrefix(url) { return url.match(/^.{3,5}\:\/\//) ?网址:\`http://${url}\` }` (3认同)