我有一个模式窗口帮助格式化文本。 我在窗口上有多个textareas。 该模式不应该附加到特定的textarea,所以当我在模式窗口中按下图标时,我需要插入一个字符串/表情符号等 - 永远光标当前。 我的问题,我如何知道光标目前在哪个元素(textarea/input/whatever)中?在浏览器的光标当前位置插入文本
3
A
回答
3
所有浏览器的最新版本都支持document.activeElement。这将告诉你哪个字段当前有焦点在该窗口内(这是光标所在的位置)。然后,您需要知道如何在当前光标位置插入文本。以下功能就是这样做的。
// Author: http://alexking.org/blog/2003/06/02/inserting-at-the-cursor-using-javascript
// Modified so it's safe across browser windows
function insertAtCursor(myField, myValue) {
var doc = myField.ownerDocument;
//IE support
if (doc.selection) {
myField.focus();
sel = doc.selection.createRange();
sel.text = myValue;
}
//FF, hopefully others
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos) +
myValue + myField.value.substring(endPos, myField.value.length);
}
// fallback to appending it to the field
else {
myField.value += myValue;
}
}
因此,从弹出菜单中,你的按钮处理程序应该调用下面的方法
// Pardon my contrived function name
function insertTextIntoFocusedTextFieldInOpener(text) {
var field = window.opener.document.activeElement;
if (field.tagName == "TEXTAREA" || (field.tagName == "INPUT" && field.type == "text") {
insertAtCursor(field, text);
}
}
0
似乎没有像isfocused
这样的属性,您只需检查以确定某个特定文本字段是否具有焦点。但是,您可以为每个文本框创建onFocus
事件的事件处理程序,并让它将新聚焦的文本框的ID记录在变量中,以便稍后进行检查。
此外,您可能会对this tutorial感兴趣,它会告诉您如何在给定字段内的当前光标位置插入文本(例如,使用上述方法确定了哪个字段已聚焦后)。
相关问题
- 1. 在文本中的光标位置后面插入文本
- 2. 在当前光标位置插入空格
- 3. (IE6)将内容插入当前光标位置处的iframe
- 4. 在光标所在的位置使用Javascript插入文本/ jquery
- 5. 在contentEditable div中设置光标位置 - 跨浏览器
- 6. 移动光标在Android网页浏览器输入文本
- 7. 如何在文本区的当前插入位置插入文本
- 8. 如何在Word中的光标位置插入文本?
- 9. 在光标位置插入RichTextEditor中的文本
- 10. 如何在uitextview中的任何光标位置插入文本?
- 11. 在光标位置插入Word形状
- 12. 在光标位置插入笑脸
- 13. 在当前脚本标签位置插入iframe?
- 14. 编辑文本行号和当前行光标位置。
- 15. 如何在光标位置插入文本在Wysihtml5-沙盒编辑器
- 16. 当前位置在所有的浏览器代码?
- 17. 当前查看范围或光标位置的MS Word插件
- 18. CONTENTEDITABLE文本编辑器,光标位置
- 19. 复位等待光标与内容处置浏览器:附件
- 20. 更改当前位置标签文本
- 21. 如何使用javascript浏览器检测获取当前位置,鼠标位置和当前网址
- 22. 浏览器插件 - 文本菜单插入文本
- 23. 通过光标/光标位置获取当前语句
- 24. 当前在浏览器上可见的文档的坐标
- 25. 隐藏caret(文本光标)在互联网浏览器contenteditable div
- 26. 如何获取并设置WPF文本框的当前光标位置
- 27. 抓取浏览器的当前位置,并使用AJAX和PHP
- 28. 如何确定当前光标位置的活动监视器
- 29. 插页位置跨浏览器?
- 30. emacs:打开我当前光标位置指向的文件