0

楽しみのために、学校のクラスの 1 つにチャットルームを作成しています。私が求めているのは JavaScript で、ボタン (URL の追加) が押されるとポップアップする入力ボックスがあり、ユーザーは URL を貼り付けてテキストエリアに書き込むことができます。

「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>

2 つの問題が残っています。

  1. そのスクリプトでテキストエリアを一掃したくない
  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 に答える