javascript在文本区域中获取所选文本

javascript在文本区域中获取所选文本,javascript,html,css,Javascript,Html,Css,我正在尝试为我的文本区编写一个简单的BB代码。我的代码工作正常,但不接受选定的文本。示例:文本。如果我用鼠标点击文本并选择[B]标记,它不会将文本更新为:[B]文本[/B]。它写在文本之后。示例:文本[b][/b]。有什么建议吗 <script type="text/javascript"> function formatText(tag) { var Field = document.getElementById('text'); var val = Fiel

我正在尝试为我的文本区编写一个简单的BB代码。我的代码工作正常,但不接受选定的文本。示例:文本。如果我用鼠标点击文本并选择[B]标记,它不会将文本更新为:[B]文本[/B]。它写在文本之后。示例:文本[b][/b]。有什么建议吗

    <script type="text/javascript"> 
function formatText(tag) {
   var Field = document.getElementById('text');
   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 += '' + tag + '';
}
</script> 

<a href="#" class="btn hint--bottom" aria-label="Bold Text" onclick="formatText ('[b][/b]');"><i class="fas fa-bold"></i></a>

函数格式文本(标记){
var Field=document.getElementById('text');
var val=Field.value;
var selected_txt=val.substring(Field.selectionStart,Field.selectionEnd);
var before_txt=val.substring(0,Field.selectionStart);
_txt后的var=val.substring(Field.selectionEnd,val.length);
Field.value+=''+标记+'';
}

您刚刚在末尾添加了标记,但希望标记将所选文本包装起来。然后,你可以这样做。此外,还相应地编辑了HTML代码

函数格式文本(标记){
var Field=document.getElementById('text');
var val=Field.value;
var selected_txt=val.substring(Field.selectionStart,Field.selectionEnd);
var before_txt=val.substring(0,Field.selectionStart);
_txt后的var=val.substring(Field.selectionEnd,val.length);
Field.value=在\u txt+'['+tag+']'之前+选定的\u txt+'[/'+tag+']'之后;
}

JS-Bin
我正在尝试为我的文本区编写一个简单的BB代码。我的代码工作正常,但不接受选定的文本。示例:文本。如果我用鼠标点击文本并选择[B]标记,它不会将文本更新为:[B]文本[/B]。它写在文本之后。示例:文本[b][/b]。有什么建议吗?

您刚刚在末尾添加了标记,但希望标记将所选文本包装起来。然后,你可以这样做。此外,还相应地编辑了HTML代码

函数格式文本(标记){
var Field=document.getElementById('text');
var val=Field.value;
var selected_txt=val.substring(Field.selectionStart,Field.selectionEnd);
var before_txt=val.substring(0,Field.selectionStart);
_txt后的var=val.substring(Field.selectionEnd,val.length);
Field.value=在\u txt+'['+tag+']'之前+选定的\u txt+'[/'+tag+']'之后;
}

JS-Bin
我正在尝试为我的文本区编写一个简单的BB代码。我的代码工作正常,但不接受选定的文本。示例:文本。如果我用鼠标点击文本并选择[B]标记,它不会将文本更新为:[B]文本[/B]。它写在文本之后。示例:文本[b][/b]。有什么建议吗?

首先拆分标记,以便得到[b]和[/b] 代码的其余部分很好

在这里测试铬

<body>
<textarea id="text"></textarea>
<a href="#" onclick="formatText('[b][/b]');"><i class="fas fa-bold">xasada</i></a>
<script> 
function formatText(tag) {
  var tags = tag.split("]", 2).map(function(t) {
    return t + "]";
  });
  var Field = document.getElementById('text');
  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 + tags[0] + selected_txt + tags[1] + after_txt;
}
</script> 
</body>

函数格式文本(标记){
var tags=tag.split(“]),2.map(函数(t){
返回t+“]”;
});
var Field=document.getElementById('text');
var val=Field.value;
var selected_txt=val.substring(Field.selectionStart,Field.selectionEnd);
var before_txt=val.substring(0,Field.selectionStart);
_txt后的var=val.substring(Field.selectionEnd,val.length);
Field.value=前文本+标记[0]+所选文本+标记[1]+后文本;
}

首先拆分标记,以便得到[b]和[/b] 代码的其余部分很好

在这里测试铬

<body>
<textarea id="text"></textarea>
<a href="#" onclick="formatText('[b][/b]');"><i class="fas fa-bold">xasada</i></a>
<script> 
function formatText(tag) {
  var tags = tag.split("]", 2).map(function(t) {
    return t + "]";
  });
  var Field = document.getElementById('text');
  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 + tags[0] + selected_txt + tags[1] + after_txt;
}
</script> 
</body>

函数格式文本(标记){
var tags=tag.split(“]),2.map(函数(t){
返回t+“]”;
});
var Field=document.getElementById('text');
var val=Field.value;
var selected_txt=val.substring(Field.selectionStart,Field.selectionEnd);
var before_txt=val.substring(0,Field.selectionStart);
_txt后的var=val.substring(Field.selectionEnd,val.length);
Field.value=前文本+标记[0]+所选文本+标记[1]+后文本;
}

我想这个链接会帮助你:)。@VoiMập问题中没有jQuery,链接没有帮助。@VoiMập谢谢你的链接!不客气:我想这个链接会帮助你:)。@VoiMập问题中没有jQuery,链接没有帮助。@VoiMập谢谢你的链接!不客气,P