Javascript将文本转换为链接

时间:2016-03-04 05:54:17

标签: javascript html href

我正在尝试这样做,当用户在文本框中输入文本时,它会将其打印为可以单击的链接。这是我的代码:

HTML:

<form>
<input type="text"  id="urlhtml" size ="30" placeholder="http://www.sait.ca">
<br>
<br>
<input type="submit" value="Add Url" id="submit"onclick="getUrlList(); return false">
</form>
<br>
<h2> Your favorite urls are: </h2>
<a href target ="_blank" ><h3><span id="showurls"></span>
</h3></a>

JAVASCRIPT:

 var urlList=[];
     function getUrlList () {

    var url={urlhtml};
    var i=0;
    var thisList="";

    url.urlhtml=document.getElementById("urlhtml").value;

    urlList.push(url);
        for(i=0; i< urlList.length;i++)
        {
        var thisurl={urlhtml};
        thisurl=urlList[i];
        thisList+="http://" + thisurl.urlhtml;
        thisList+="<br>";

        }
    document.getElementById("showurls").innerHTML=thisList;
}

链接显示,您可以点击它,但它只是打开同一页面而不是用户输入的内容。

任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:1)

将for循环更改为

for(i=0; i< urlList.length;i++)
{
    thisList+="<a href='http://" + urlList[i] + "'>" + urlList[i] + "</a><br>";
}

基本上你没有正确地形成锚标签

答案 1 :(得分:1)

只需将代码更改为此即可。你必须形成一个&#34; a&#34;每个链接的属性。

&#13;
&#13;
var urlList = [];

function getUrlList() {

  var url = {
    urlhtml
  };
  var i = 0;
  var thisList = "";

  url.urlhtml = document.getElementById("urlhtml").value;

  urlList.push(url);
  for (i = 0; i < urlList.length; i++) {
    thisList += "<a target='blank' href='http://" + urlList[i].urlhtml + "'>" + urlList[i].urlhtml + "</a><br>";
  }
  document.getElementById("showurls").innerHTML = thisList;
}
&#13;
<form>
  <input type="text" id="urlhtml" size="30" placeholder="http://www.sait.ca" value="www.google.com">
  <br>
  <br>
  <input type="submit" value="Add Url" id="submit" onclick="getUrlList(); return false">
</form>
<br>
<h2> Your favorite urls are: </h2>
<a href target="_blank"><h3><span id="showurls"></span>
</h3></a>
&#13;
&#13;
&#13;