将标签插入文本区域的按钮

问题描述 投票:0回答:3
我相信这个问题之前已经被回答过,但是我怎样才能拥有按钮/图像/任何东西,以便当我单击它们时,它会在光标位置周围插入

<b></b>

,就像您在论坛中找到的那样(甚至StackOverflow提出问题页面) ?
再说一次,我知道这个问题已经得到解答,但我能找到的只是使用 jQuery,而我的服务器不支持它......
谢谢

javascript html textarea
3个回答
1
投票
这是我不久前写的一篇

jsFiddle

function boldText(textAreaId, link) { var browser=navigator.appName var b_version=navigator.appVersion if (browser=="Microsoft Internet Explorer" && b_version>='4') { var str = document.selection.createRange().text; document.getElementById(textAreaId).focus(); var sel = document.selection.createRange(); sel.text = "<b>" + str + "</b>"; return; } field = document.getElementById(textAreaId); startPos = field.selectionStart; endPos = field.selectionEnd; before = field.value.substr(0, startPos); selected = field.value.substr(field.selectionStart, (field.selectionEnd - field.selectionStart)); after = field.value.substr(field.selectionEnd, (field.value.length - field.selectionEnd)); field.value = before + "<b>" + selected + "</b>" + after; }
    

0
投票
看看 Alex King 的方法是什么:

http://alexking.org/blog/2003/06/02/inserting-at-the-cursor-using-javascript


0
投票
这是一个修改版本,您可以输入任何标签字母

function TextMod(textAreaId,input) { var browser=navigator.appName var b_version=navigator.appVersion if (browser=="Microsoft Internet Explorer" && b_version>='4') { var str = document.selection.createRange().text; document.getElementById(textAreaId).focus(); var sel = document.selection.createRange(); if(input == "br"){ sel.text = str + "</"+input+">"; } else{ sel.text = "<"+input+">" + str + "</"+input+">"; } return; } field = document.getElementById(textAreaId); startPos = field.selectionStart; endPos = field.selectionEnd; before = field.value.substr(0, startPos); selected = field.value.substr(field.selectionStart, (field.selectionEnd - field.selectionStart)); after = field.value.substr(field.selectionEnd, (field.value.length - field.selectionEnd)); if(input == "br"){ field.value = before + selected + "</"+input+">" + after; } else{ field.value = before + "<"+input+">" + selected + "</"+input+">" + after; } }
    
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.