我有一个 HTML<input type="text">或<textarea>随机存在的文本,比如 [12345678] 或 [12345
67890]
我在这个文本中有一个任意定位的 mousedown 单击事件。我需要将 2D mousedown 点击页面坐标转换为基于字符的 1D 文本坐标,以便 JS 正确定位插入符号。显然浏览器有一些函数在内部进行这种转换;最好这样称呼。输入具有标准的可变宽度字体,并且可以处于任何放大级别。浏览器仅限于 FireFox。我们有 JQuery 和 JCursor。
背景:输入字段是在深度嵌套的框内动态生成的,每个框都有粗糙的重载。遗留代码与最新 FF 实现的结合以某种方式窃取了从输入元素冒泡到它点击默认浏览器 set-caret 操作的时间之间的 mousedown 传播/焦点,而这种情况并没有发生。我需要自己设置插入符号。
我想获取光标在<input>. 这是我正在使用的代码:
$("input").keyup(function() {
$("<p>")
.html("Cursor position at " + $("input").caretPosition())
.appendTo("#test");
});
Run Code Online (Sandbox Code Playgroud)
并caretPosition定义为(只是 的包装selectionStart):
$.fn.caretPosition = function() {
if (!this.length) return;
var input = this[0];
try {
return input.selectionStart;
} catch(e) {
// No need for old IE support
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
超文本标记语言
<input type="number" />
<div id="test">
</div>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这在 Chrome 中不起作用,但在 Firefox 中却可以。在 Chrome 中,它0一直打印。这会让我认为 chrome 不支持selectionStart,但我读到它确实支持selectionStart。type="number"如果我更改它就会开始工作,这一事实支持了这一点type="text"。如何让它在不同浏览器中一致工作type="number"?(不是 IE,不需要支持)。
我已阅读 …
我在 HTML 中输入了带有数字文本的字段,其中有一个点,即“1.00.1”。如果我在 IE 或 firefox 中双击此字段,浏览器仅选择文本的一部分(点之间),但在 Chrome 中双击选择此字段中的整个文本。在 Chrome 中更改此行为的最佳方法是什么?如果我在输入字段中只有文本(即“test.test”),则在 Chrome 中双击并选择与 IE 和 Firefox 一样。

我想将弹出元素直接放置在文本区域或内容可编辑元素中的文本插入符/闪烁文本光标下方。
我找到了答案,为我提供了插入符号所在元素内的文本索引,但据我所知,这对我来说毫无用处。(像这样)
我需要与鼠标事件可用的 event.pageX 和 pageY 属性类似的东西,但我希望文本编辑器插入符的位置也有同样的东西。有人知道怎么做吗?
我想创建一个小书签,可以将其放在浏览器的书签工具栏上,单击该小书签时,会插入固定的预定义文本(在我的用例中,耸肩:\xc2\xaf\\_(\xe3\x83\x84) _/\xc2\xaf )在当前光标位置(假设光标位于可编辑输入字段或文本区域中)。然而,我是 JavaScript 的初学者,不知道如何开始这样做。有什么帮助吗?如果我能找到正确方向的指针,我可能就能从那里找出答案。谢谢!
\n我有一个输入字段<input value="@website.com" type="text" name="email" id="email">,因此我想输入,因此当用户将焦点放在该字段上时,它将光标移动到之前@website.com。
我有以下Javascript / jQuery代码,但它似乎不起作用:
$(document).ready(function() {
$("#email").focusin(function(){
$("#email").focus();
$("#email")[0].setSelectionRange(0,0);
});
});
Run Code Online (Sandbox Code Playgroud)
似乎.focus()一直在调用该focusin()函数。
我知道$("#email")[0].setSelectionRange(0,0);将光标移到最前面的正确方法是什么,但是当字段具有焦点时如何将其绑定到上面?
编辑:所以当我使用:
$("#email").focus(function(){
$("#email")[0].setSelectionRange(0,0);
});
Run Code Online (Sandbox Code Playgroud)
当我跳到该字段时,它将光标设置在开始处,但在单击时则不将其设置。
我不知道是否可能,但我需要知道使用 javascript 输入字符的具体位置。例如:
我有:162345.25,如果我想输入另外6个数字,在三到四个数字之间(1623 6 45.25),我需要知道在哪个位置输入(在本例中是第五个位置)。
我的问题是我需要知道在“按键”事件中我只能捕获按下的按键。有人知道这是否可能?
我试图将文本框中的字符转换为大写.
但这似乎影响了我的光标位置.
JS小提琴下面:
$(this).val($(this).val().toUpperCase());
Run Code Online (Sandbox Code Playgroud)
如果我在空白文本框中输入一切都很好......但如果我尝试在文本之间键入,则光标会立即转到单词的末尾.
如何防止它发生,我的光标应该是我停止输入的位置,而不是文本的末尾.
在Firefox中运行良好,IE搞砸了.我需要它在IE上工作
javascript ×7
jquery ×3
html ×2
bookmarklet ×1
caret ×1
cursor ×1
focus ×1
input ×1
keypress ×1
onkeypress ×1
text ×1
typescript ×1