作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
举个例子
姓名:阿卜杜勒纳伊姆
如果我们从上面选择 Naeem 以便从中获取 Abdul......
是否可以获取选中词的左边词
我试过了,但我还没有找到这个.....任何人都可以帮助我解决这个问题。
我发现了一些提示,它只获取选定的单词,但我需要它左侧的单词
Get the Highlighted/Selected text
例如,让我们考虑一个物体的重量是否为 30 N。现在我想选择 30,并从中获取单词 weights ??我怎样才能在 javascript 中做到这一点 –
最佳答案
这很重要,主要是因为文档的层次结构。
在非 IE 浏览器中,只要它在同一个元素中,就会得到前一个词的受限功能:
// get the selection
var sel = window.getSelection();
// get the element in which the selection is made, and the start and end position
var node = sel.anchorNode;
var from = sel.anchorOffset;
// let's see what's before the selection
var textBeforeWord = node.textContent.substring(0, from);
var match = textBeforeWord.match(/(\w+)\s+/);
var previousWord = match[1];
当您考虑到一个词可能是其元素中的第一个元素的可能性,或者一个选择可能跨元素时,当您需要导航 DOM 层次结构以寻找前一个元素时,这会变得更加复杂。这也很复杂,因为您需要完全不同地执行两次(因为 IE 的 API 完全不同)。
编辑 如果是 <textarea>
元素,它变得更简单,因为您不必担心选择会溢出元素。对于 IE,您将不得不做一些体操,因为它不支持 selectionStart
,如所述here .
var node = document.getElementById('mytextarea');
var from = node.selectionStart;
var textBeforeWord = node.textContent.substring(0, from);
// the rest is the same as above
关于html - 如何在javascript中获取所选单词的左单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26859006/
我是一名优秀的程序员,十分优秀!