【问题标题】:Javascript Trigger "right arrow" key event - Force Label DeselectionJavascript触发“右箭头”键事件 - 强制标签取消选择
【发布时间】:2019-10-09 23:57:38
【问题描述】:

我想触发一个键盘事件来按下“右箭头”键。目的是取消高亮。

我使用下面的代码将超链接插入到编辑器内容中。

var range = document.getSelection().getRangeAt(0);
var nnode = document.createElement("a");
range.surroundContents(nnode);
nnode.innerHTML = url;
nnode.setAttribute(url);
nnode.focus();

默认为高亮。我想触发“右箭头”键以取消突出显示并将光标向右移动。我做了很多搜索,我尝试了最多的解决方案,但我仍然得到一个作品。我的环境是 IE 11。

我能得到一些帮助吗?

谢谢!

【问题讨论】:

  • X-Y 问题。你不想触发“右箭头”,你的第二句话就是你想要的:“目的是取消高亮。”为此,您真的不需要触发“右箭头”
  • 模拟此类用户输入事件从未得到普遍支持,并且近年来已被避开。 “X”问题没有合适的跨浏览器解决方案。

标签: javascript jquery html


【解决方案1】:

所以..这里是您要求的资源,但我有一个解决您的突出显示问题的解决方案,但这些都不是。

资源

How to trigger click on page load?

Detecting arrow key presses in JavaScript

Trigger an UP or DOWN ARROW key event through javascript


实际解决方案使用 JQuery 和此资源:JavaScript Set Window selection

$("document").ready(function() {
   window.getSelection().removeAllRanges();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="myDiv">
I am some text!
</div>

查看 JSFiddle:JSFiddle

【讨论】:

  • 非常感谢!我明天会尝试,因为我现在无法访问我的电脑。顺便说一句,这个解决方案会将光标保持在字符串的右端吗?或者,是否有另一种方法可以只关注字符串的右端?
  • 这段代码运行时不会出现光标,是你想要的吗?就像从未选择过文本一样
  • 非常感谢!您的解决方案完美解决了我的问题。
猜你喜欢
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 2016-10-07
  • 2018-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-22
相关资源
最近更新 更多