Javascript 如何防止在进行选择时清除文本框?

Javascript 如何防止在进行选择时清除文本框?,javascript,onclick,textarea,selection,Javascript,Onclick,Textarea,Selection,我正在尝试构建一个文本编辑器,为此我使用了一个文本区域来填充我的文本 我的问题是,当我点击一个按钮时,文本区域选择消失了 下面是一些代码来说明问题: 地址: 加州路 单击按钮以选择文本区域的内容 试试看 如果要添加bbcode功能,您可能需要查看以下线程: 此外,此线程中取自Tim的代码可能会有所帮助: function getSelectionText() { var text = ""; if (window.getSelection) { text = w

我正在尝试构建一个文本编辑器,为此我使用了一个文本区域来填充我的文本

我的问题是,当我点击一个按钮时,文本区域选择消失了

下面是一些代码来说明问题:

地址: 加州路 单击按钮以选择文本区域的内容

试试看
如果要添加bbcode功能,您可能需要查看以下线程:

此外,此线程中取自Tim的代码可能会有所帮助:

function getSelectionText() {
    var text = "";
    if (window.getSelection) {
        text = window.getSelection().toString();
    } else if (document.selection && document.selection.type != "Control") {
        text = document.selection.createRange().text;
    }
    return text;
}

选择不会丢失,只是在文本区域未聚焦时不会显示。 在Firefox、Chrome或IE10上尝试以下代码:

HTML部分:

Address:<br>
<textarea id="myTextarea">
California Road
</textarea>    
<p>Click the button to select the contents of the text area.</p>
<button id="button">Try it</button>

@mplungjan-它会带来什么好处?因为它是一种形式,不应该为空。当我知道所选文本时,我可以添加一些标记@QuentinI还尝试了input type=button@mplungjan
function go() {
    var e = document.getElementById("myTextarea");
    var startPos = e.selectionStart;
    var endPos = e.selectionEnd;
    var selection = e.value.substring(startPos, endPos)    ;
    alert("It seems to have disappeared, but...\n\"" + selection + "\"");
    e.focus();
}
var btn = document.getElementById("button");
btn.addEventListener(
    "click",
    go,
    false
);