Javascript 为什么getSelection()总是不返回任何内容?

Javascript 为什么getSelection()总是不返回任何内容?,javascript,jquery,html,Javascript,Jquery,Html,$(“body”)。在('click','button',函数(e)上{ var selection=window.getSelection().toString(); 警报(选择); }); 这是一个测试 单击无法修复它,否则-单击任意位置将删除选择。尝试不使用JavaScript:只要单击按钮,或者任何地方,选择就会消失。您的代码向您显示发生后的准确状态。当按下鼠标按钮,然后松开时,单击事件发生,此时选择丢失 您必须使用mousedown事件,该事件发生在按下鼠标按钮时,选择丢失之前 函

$(“body”)。在('click','button',函数(e)上{
var selection=window.getSelection().toString();
警报(选择);
});

这是一个测试

单击
无法修复它,否则-单击任意位置将删除选择。尝试不使用JavaScript:只要单击按钮,或者任何地方,选择就会消失。您的代码向您显示发生后的准确状态。

当按下鼠标按钮,然后松开时,
单击事件发生,此时选择丢失

您必须使用
mousedown
事件,该事件发生在按下鼠标按钮时,选择丢失之前

函数getSelection(elem){
var选择文本;
如果(document.selection!=未定义){//IE
元素焦点();
var sel=document.selection.createRange();
selectedText=sel.text;
}else如果(elem.selectionStart!=未定义){//Firefox
var startPos=elem.selectionStart;
var endPos=elem.selectionEnd;
selectedText=elem.value.substring(开始位置、结束位置)
}
返回所选文本;
}
$(文档).on('mousedown','button',函数(e){
var selection=getSelection($('#txtarea').get(0));
警报(选择);
});

这是一个测试

单击
,那么标记编辑器如何在所选文本周围附加两颗星?如果不阅读代码,我想它会在单击其他事件之前保存所选内容。完美的解决方案+1建议:当用户单击(例如)
B
-图标时,如何使用标记编辑器?它使用
mousedown
或在单击之前保存选择,在其他事件上(如Amadan在评论中所说),它们通常使用
mousedown
事件获取选择,然后用
selected text
等替换选择,然后使用
mouseup
将焦点重置回文本,再做一次标记我想我知道了谢谢。。我将开始创建它。。我想我会遇到一些问题,我会再问一遍;-)@Oriol-这是Firefox中的一个bug,它包含文本区域和
getSelection
,有很好的文档记录,解决方法是使用
selectionStart
selectionEnd