Подтвердить что ты не робот

Как удалить "http://" из URL-адреса в JavaScript

Я столкнулся с странной ситуацией. Я пишу букмарклет JavaScript, который позволит пользователям легко и быстро щелкать и обмениваться внешними веб-сайтами на нашем сайте. Он просто получает заголовок, URL-адрес страницы, и если они выбрали любой текст на странице, он также захватывает его.

Проблема заключается в том, что по какой-то причине она не работает с внешними доменами, поэтому, если мы ее внутренне используем, мы получаем окно совместного доступа с URL-адресом, отформатированным следующим образом:

http://internaldomain.com/sharetool.php?shareid=http://internaldomain.com/anotheroddpage.html&title=....

Это работает отлично, но если мы попытаемся использовать внешний домен и получим URL-адрес, форматированный следующим образом:

http://internaldomain.com/sharetool.php?shareid=http://externaldomain.com/coolpagetoshare.html&title=...

Затем мы получаем Forbidden Error на нашей странице и не можем ее загрузить... Если мы вручную удалим http:// с внешнего домена, он снова загрузится.

Итак.. Я думаю, что лучшим решением этой проблемы является изменение закладки буклета JavaScript для удаления http при загрузке окна. Вот как выглядит мой текущий букмарклет:

javascript:var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='http://internaldomain.com/sharetool.php',l=d.location,e=encodeURIComponent,u=f+'?u='+e(l.href)+

Как вы можете видеть, e(l.href) - это путь, по которому передается URL.

Как я могу изменить это, чтобы удалить внешние домены http://?

4b9b3361

Ответ 1

Думаю, было бы лучше принять во внимание все возможные протоколы.

result = url.replace(/(^\w+:|^)\/\//, '');

Ответ 2

url = url.replace(/^https?:\/\//,'')

Ответ 3

l.href.replace(/^http:\/\//, '')

Ответ 4

Я думаю, что вам нужно регулярное выражение /(?:http://)(.*)/i. Первое совпадение должно быть таким.

Ответ 5

Попробуйте использовать replace функция

var url = url.replace("http%3A%2F%2F", "");