标签: getcaretpos

获得包括标签在内的可信赖div中的插入位置

我有一个contenteditable div,其中我有多个标签(br,b,u,i)和文本,我需要获得相对于div的插入位置,包括所有标签.

例如:

<div id="h" contenteditable="true">abc<b>def<br>ghi</b>jkl</div>
Run Code Online (Sandbox Code Playgroud)

如果光标在g和h之间,我需要插入位置为14.问题是找到的使用treeWalker的方法在这种情况下不起作用.找不到粗体标签......可能是因为它没有关闭.我也尝试了几种方法,但仍然没有运气.

我需要它在Firefox中工作.谢谢.

html javascript contenteditable getcaretpos

10
推荐指数
2
解决办法
2万
查看次数

如何获得包含图像的contenteditable div的插入位置

我有这个contentedittable div

<div contenteditable="true" id="text">minubyv<img src="images/smiley/Emoji Smiley-01.png" class="emojiText" />iubyvt</div>
Run Code Online (Sandbox Code Playgroud)

这是代码输出的图像描述 在此输入图像描述

所以我想获得div的插入位置,并假设光标位于最后一个字符之后.这是我获得插入位置的代码

function getCaretPosition(editableDiv) {
  var caretPos = 0,
    sel, range;
  if (window.getSelection) {
    sel = window.getSelection();
    if (sel.rangeCount) {
      range = sel.getRangeAt(0);
      if (range.commonAncestorContainer.parentNode == editableDiv) {
        caretPos = range.endOffset;
      }
    }
  } else if (document.selection && document.selection.createRange) {
    range = document.selection.createRange();
    if (range.parentElement() == editableDiv) {
      var tempEl = document.createElement("span");
      editableDiv.insertBefore(tempEl, editableDiv.firstChild);
      var tempRange = range.duplicate();
      tempRange.moveToElementText(tempEl);
      tempRange.setEndPoint("EndToEnd", range);
      caretPos = tempRange.text.length;
    }
  }
  return caretPos;
}

var update …
Run Code Online (Sandbox Code Playgroud)

javascript caret contenteditable getcaretpos

6
推荐指数
1
解决办法
3046
查看次数

取消选择JTextfield上的默认选择

使用JTextFields时我喜欢设置默认文本.

然后我运行程序,将自动选择此默认文本(至少当您只有一个字段时).换句话说,如果我立即键入一个字母,默认文本将被删除并替换为新文本.

我的问题是如何以允许我键入字母而不删除默认文本的方式更改默认设置?我想将这封信添加到默认文本的末尾.

这是我的代码:

    public class ButtonsNText extends JPanel implements ActionListener, KeyListener {

private JTextField TextLine;
private JToggleButton UpperCaseButton;
private JToggleButton LowerCaseButton;
private JCheckBox ContinuousButton;
private ButtonGroup myButtonGroup;

public ButtonsNText(){
    TextLine = new JTextField(10);
    add(TextLine); TextLine.setName("TextLine");
    TextLine.setText("default text"); 
    TextLine.setCaretPosition(TextLine.getText().length());
    TextLine.addKeyListener(this);
    myButtonGroup = new ButtonGroup();
    UpperCaseButton = new JToggleButton("Upper case");
    add(UpperCaseButton);UpperCaseButton.setName("UpperCaseButton");
    LowerCaseButton = new JToggleButton("Lower case");
    add(LowerCaseButton); LowerCaseButton.setName("LowerCaseButton");
    ContinuousButton = new JCheckBox("Continuous?");
    add(ContinuousButton); ContinuousButton.setName("ContinuousButton");
    myButtonGroup.add(UpperCaseButton); myButtonGroup.add(LowerCaseButton);
    UpperCaseButton.addActionListener(this);
    LowerCaseButton.addActionListener(this);
    ContinuousButton.addActionListener(this);

}
public static void main(String[] args) {
    JFrame frame = new JFrame("Hello …
Run Code Online (Sandbox Code Playgroud)

java swing caret jtextfield getcaretpos

5
推荐指数
2
解决办法
3266
查看次数

获取有关插入位置的最新信息

如何通过当前的插入位置在textarrea中找到一个单词?

我尝试了类似这样的东西,但这只返回第一个字母到达插入位置的字符.例如:

如果光标位于foo之间,则返回fo而不是foo被检查.

Fo |o bar不等于bar foo.=> Fo期待Foo

Foo bar不等于|bar foo.=> equ期待 equal.

这是我到目前为止所做的:

function getCaretPosition(ctrl) {
    var start, end;
    if (ctrl.setSelectionRange) {
        start = ctrl.selectionStart;
        end = ctrl.selectionEnd;
    } else if (document.selection && document.selection.createRange) {
        var range = document.selection.createRange();
        start = 0 - range.duplicate().moveStart('character', -100000);
        end = start + range.text.length;
    }
    return {
        start: start,
        end: end
    }
}

$("textarea").keyup(function () {
    var caret …
Run Code Online (Sandbox Code Playgroud)

string jquery textarea cpu-word getcaretpos

5
推荐指数
1
解决办法
3374
查看次数

JavaScript:在contenteditable div中获取光标位置

我是JavaScript的新手,希望有人可以帮我解决以下问题:

主要在IE 8中寻找解决方案 - 如果它能够更好地覆盖其他浏览器/版本.我有一个页面只有一个动态创建的contenteditable div,包含文本和HTML标记.在页面上,我想添加一个按钮,将光标位置的某些文本插入此div.

到目前为止,我有以下代码,只要我在div中选择一个文本,但是如果我只是将光标放在那里而不选择任何东西,它会将我的文本插入div之外.

如何才能让它始终在光标位置添加我的文本,就像现在在选择位置一样?(我甚至不需要它来替换选择,因为它只需要在光标位置.此外,这只需要一个特定的div.)

我的代码:

<html>
<head>
<script type="text/javascript">
    function test()
    {
        var input = "TEST";
        document.selection.createRange().pasteHTML(input);
    }
</script>

</head>
<body>
    <div id="myDiv" contenteditable>This is a test text.</div><br />
    <button type="button" onclick="test()">Test</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

蒂姆,谢谢你的帮助

javascript jquery contenteditable cursor-position getcaretpos

1
推荐指数
1
解决办法
7081
查看次数