0

只是为了好玩,我为我的一个学校课程创建了一个聊天室。我想要的是一个 JavaScript,一旦按下按钮(添加 url),就会弹出一个输入框,用户可以在其中粘贴一个 url,然后将其写入 textarea。

我想要这个功能,以便将“http://”放在添加的 url 前面。

一直在尝试这个脚本(这对我来说看起来是正确的......但它不起作用)

<input type="button" id="s_5" onclick="addUrl()">
<script>
function addUrl()
{
var x;

var nettside=prompt("Type in URL:","www.example.com");

if (nettside!=null)
  {
  x="http://" + nettside + ";
  document.getElementById("area").innerHTML=x;
  }
}
</script>

是的,它应该写入的文本区域:

<textarea name="txt" id="area" class="typo_vind" placeholder="......" autofocus title="Type your message here, have a great day!"></textarea>

编辑

HTML:

<input type="button" id="s_5" onclick="javascript:formatText(addUrl())">

JS:

<script>
function addUrl()
{
var x;

var nettside=prompt("Skriv inn lenkeadressen her:","www.testtest.com");

if (nettside!="")
  {
  x="<a href="+"http://" + nettside + ">" + "BESKRIVELSE AV LENKEN" + "</a>";
  document.getElementById("area").value=x;
  }
}
</script>

仍然存在两个问题。

  1. 我不希望该脚本清除 textarea
  2. 我不希望<undefined></undefined>添加到最后这是脚本的结果,就像现在一样:

<a href=http://www.eksempel.com>__BESKRIVELSE_AV_LENKEN__</a><undefined></undefined>

编辑 2

解决了脚本清除 texarea 的问题:

<script>
function addUrl()
{
var x;

var nettside=prompt("Skriv inn lenkeadressen her (uten http://):","www.eksempel.com");

  {
  x="<a target =_blank href=http://" + nettside + ">" + "__BESKRIVELSE_AV_LENKEN__" + "</a>";
  var Field = document.getElementById('area');
  var val = Field.value;
  var selected_txt = val.substring(Field.selectionStart, Field.selectionEnd);
  var before_txt = val.substring(0, Field.selectionStart);
  var after_txt = val.substring(Field.selectionEnd, val.length);
  Field.value = before_txt  + x + after_txt;

  }
}
</script>

所以现在所缺少的就是删除<undefined></undefined>-tags。

HTML:<input type="button" id="s_5" onclick="javascript:addUrl()">

解决了!

4

1 回答 1

1

您应该检查浏览器的控制台——它总是会通知发生了什么错误。

你在这一行有一个错字:

  x="http://" + nettside + ";

结尾+ "应该删掉。


也在这里:

document.getElementById("area").innerHTML=x;

您应该value改用(通常使用 for 元素执行此操作):

document.getElementById("area").value=x;

这可能不会导致您使用的浏览器出现问题,但在某些情况下可能会导致奇怪的行为:)。

于 2013-11-05T23:24:20.937 回答