javascript - 在只读 div 的内容中移动插入符号,允许动态突出显示

标签 javascript jquery html css

我一直在努力让一个字段正常工作。该字段显示大量数据,用户希望选择并复制其中的很大一部分。数据基本上是一个大列表,用户想要选择某个点以下的所有条目。他们实现选择的方式是在他们想要的第一个条目中突出显示一个或两个单词,然后按 ctrl+shft+end 以选择底部的所有内容。这一直有效,直到页面上的新功能被添加到列表内容下方。现在,热键选择还会选择页面其余部分的内容。

当前的实现很简单:

<div id='diff-contents'>[content here]</div>
<div id='trailing-content'>blah blah blah...</div>

我试过只读输入框:

<input id='diff-contents' value='[content here]' readonly/>

这在某种程度上适用于 Firefox,但是内容包含 HTML,并且输入字段按字面显示 html,而不是呈现。除此之外 Chrome doesn't show a blinking caret and the hot keys do nothing , 所以在这种情况下输入字段对我来说很遗憾不可行。

我如何制作一个可选择的字段来保持光标的焦点并显示闪烁的插入符号但不能使用 javascript、CSS、HTML 或 JQuery 进行编辑?

编辑:jsfiddle example that should clarify a bit.

最佳答案

看这几题如何判断当前选择:Getting selected text in a browser, cross-platform

下一步是创建一个新范围,该范围从 #diff-contents 的结束标记开始。有了这些信息,您应该能够扩展/修改现有的选择。

我建议在 UI 中添加一个按钮,或者使用带有按键处理程序的 JavaScript 来触发此代码。

这样,应该选择正确数量的 HTML。然后用户可以使用 Ctrl+C 将其复制到剪贴板。

关于javascript - 在只读 div 的内容中移动插入符号,允许动态突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26913615/

相关文章:

javascript - Angularjs 中的嵌套 Accordion 在子级中具有相同的 Scope 变量

javascript - 获取 HTML 的 ID

jquery - 翻转图像的CSS类

javascript - 如何在网站中进行深层链接

javascript - 串联是否会减少 HTTP2 中的 header 数量?

javascript - NodeJS : promise returned by Promise. 尽管各个 promise 都已解决,但一切都没有解决

javascript - 如何在列表中并排显示 div(内联 block 不起作用)同时垂直对齐右侧的 div(垂直对齐不起作用)

javascript - 调用/加载Jquery页面

html - CSS:如何将文本与高度调整的输入元素的基线对齐?

html - 如何格式化 HTML5 中的 <section> 元素以向辅助设备用户提供有意义的见解?