HTML заставляет гиперссылку URL трактоваться как не относительную (абсолютную) - PullRequest
15 голосов
/ 09 февраля 2012

У меня есть список URL-адресов, которые наши пользователи ввели для веб-сайтов различных клиентов ... Я загружаю этот список с сервера в сетку, чтобы пользователи могли видеть ... Я сделал URL-адреса кликабельными, обернув их HTML-тег href ... проблема в том, что иногда пользователь вводит URL без http: // или www. префикс, и поэтому браузер обрабатывает их как относительные URL-адреса, которые никогда не встречаются, потому что все эти сайты предназначены для наших клиентов и являются внешними. Есть ли способ заставить эти URL трактоваться как абсолютные, а не относительные?

Вот пример:

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

Если вы попробуете это, вы увидите, что браузер предположит, что это относительный путь, который не должен иметь место.

Спасибо


Решение:

Я решил проверить «//» (потому что я не знаю, что это за протокол - может быть http или https), и если он не найден, я предполагаю, что это веб-сайт http, и я добавляю префикс URL это - так что никоим образом не заставить браузер обрабатывать гиперссылки как абсолютные

Ответы [ 3 ]

8 голосов
/ 28 декабря 2017

Вы можете добавить // перед URL, и это должно работать.

3 голосов
/ 09 февраля 2012

Почему бы вам не обработать ввод и не добавить http:// при необходимости?

0 голосов
/ 09 февраля 2012

Это является относительным URI.

Если вы хотите сделать ссылку на http://google.com/, тогда вам нужно сделать ссылку.

Вы можете или модерировать URI, который вы переносите, или попытаться алгоритмически угадать, было ли это относительной ссылкой или нет.

Обратите внимание, что вы не можете с уверенностью предполагать, что должно www. , поскольку использование этого для веб-сайтов является просто соглашением, и больше не является строго соблюдаемым.

...