我想知道即使单击外部按钮,我也会如何在TextArea上保持焦点/选择。
就像RichTextEditor一样。
答案 0 :(得分:0)
在click事件的事件处理程序中,您需要stopImmediatePropagation()和preventDefault(),然后使用选择/焦点开展业务。
答案 1 :(得分:0)
似乎RichTextEditor
正在通过setTextStyles()
中的以下行完成对焦点的维护:
callLater(textArea.setFocus)
我认为与RTE
控件的任何用户交互都会引导此方法,因此在控件事件完成后返回焦点。
答案 2 :(得分:0)
我在简单的文本框中遇到了同样的问题。我有一个拉出突出显示值的按钮,ajax将其发送到服务器。但是当从按钮上取下焦点时,高亮值window.getSelection().toString()
为空白。
我只需将焦点设置回文本区域即可解决此问题。我知道的廉价解决方案,但它的工作我使用jQuery但可能很难想出一个vanilla javascript版本。
$holder.on('click', '.name-add_option input', function(e)
{
// Make sure the button doesn't do something silly like submit the form.
e.preventDefault();
// Set the focus to the text area I expect the highlighted text to be.
$holder.find('.name-field textarea').focus();
// Copy highlighted text.
highlight = window.getSelection().toString();
// Do stuff with highlighted data.
});
$holder
是一个div的jquery句柄,在我的上下文中被设置为模态窗口。
答案 3 :(得分:-2)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:TextArea id="textArea" focusOut="{textArea.setFocus()}" />
<mx:Button id="test" label="Test" />
</mx:Application>