Удалить URL-адрес по умолчанию из тега привязки - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть следующий код, который вводит ссылку от пользователя и создает тег anchor с href = link

<html>
<head>
    <title>Page Title</title>
    <style>
        #text-input {
            border-left: 4px solid green;
            text-indent: 12px;
        }
    </style>
</head>
<body>
    <p>Enter a link</p>
    <div id="text-input" contenteditable="true"></div>
    
    <script>
      let div = document.getElementById('text-input');
      let anchor;

      div.addEventListener('blur', event => {
        let text = div.innerText;
        div.innerText = '';
        anchor = document.createElement('a');
        div.appendChild(anchor);
        anchor.innerText = text;
        anchor.href = text;
        
        // The below line logs the actual link of the anchor tag
        console.log(anchor.href);
      });
    </script>
</body>
</html>

ПРОБЛЕМА

Когда я назначаю href значение ссылки, создается впечатление, что ссылка также содержит некоторый URL-адрес веб-сайта по умолчанию.Я не хочу эти URL по умолчанию.Что мне делать?

Ответы [ 3 ]

0 голосов
/ 23 сентября 2018

В зависимости от требований по умолчанию вы можете добавить https или http к входным данным.

 anchor.innerText = text;       
            if(text.indexOf('http://')!=0 || text.indexOf('https://')!=0){
                text = "http://"+text;  //default http(or) https
            }
             anchor.href = text;
0 голосов
/ 23 сентября 2018

Вам может понадобиться добавить http: // или https: // в начале.

<html>
<head>
    <title>Page Title</title>
    <style>
        #text-input {
            border-left: 4px solid green;
            text-indent: 12px;
        }
    </style>
</head>
<body>
    <p>Enter a link</p>
    <div id="text-input" contenteditable="true"></div>
    
    <script>
      let div = document.getElementById('text-input');
      let anchor;

      div.addEventListener('blur', event => {
        let text = div.innerText;
        div.innerText = '';
        anchor = document.createElement('a');
        div.appendChild(anchor);
        anchor.innerText = text;
        anchor.href = 'http://'+text;
        
        // The below line logs the actual link of the anchor tag
        console.log(anchor.href);
      });
    </script>
</body>
</html>
0 голосов
/ 23 сентября 2018

Может дело в относительных URL?Добавьте "http://" в начале текста, если у текста его нет.

...