在html中的屏幕坐标(x,y)处选择一个单词
select a single word at a screen coordinate (x, y) in html
我想知道是否有一种方法可以通过提供屏幕坐标(x,y)来选择HTML中的单个单词。基本上,我想有一个自定义的窗口.getSelection,但不是由光标(或触摸)触发,而是一个(x,y)点作为输入。谢谢
一个BASIC解决方案可能是这样的:
(单词的检测严格基于一个空格")
仅出于演示目的,编码字符和非字母顺序字符在此超出范围!
var $j = function(val, space) {return JSON.stringify(val, '', space || '');};
var $l = function(val) {document.body.insertAdjacentHTML('beforeend', '<div><pre>' + val + '</pre></div>')};
$lj = function(val, space) {$l($j(val, space));};
function getWordAtPosition(x,y){
var caretPosition = document.caretPositionFromPoint( x , y );
var str = caretPosition.offsetNode.data;
var len = caretPosition.offsetNode.length;
var pos = caretPosition.offset;
var result = {
function: 'getWordAtPosition( ' + x + ' , ' + y + ')' ,
x : x ,
y : y ,
data : str ,
startAt : pos ,
endAt : pos ,
curChar : str[pos] ,
};
if(!result.curChar) return result;
if( result.curChar === " ") return result;
while(pos>=0 && str[pos]!==' ') pos--;
result.startAt = pos+1;
var endAt = str.indexOf(' ' , result.startAt);
endAt = endAt === -1 || endAt === result.startAt ? len-1 : endAt-1;
result.endAt = endAt;
result.word = str.substring(result.startAt , result.endAt+1);
$lj( result , ' ');
}
document.onclick = function(evt) {
getWordAtPosition(evt.clientX, evt.clientY);
};
Click anywhere in this document.
<div>
<p>Testing my code here</p>
</div>
相关文章:
- 选择带有空格分隔单词的元素
- 选择下拉菜单:实现非精确搜索,每个单词都将被不可重复地搜索
- 如何按从当前单词到段落中该句子(.)结尾的范围选择文本
- 选择符号旁边的单词
- 使用Javascript双击HTML中的空格时,选择上一个和下一个单词
- Hangman游戏将用户选择的字母与单词中的字母进行比较以进行猜测
- 试图用随机选择的单词填充html中的ul.JS
- 如果字符串与数组中的多个单词匹配,则Javascript会选择该字符串
- 我在angular JS中选择了一个默认选项,并删除了两个单词之间的下划线
- Jquery $this属性选择器是否包含单词
- 在双击/选择单词时在 chrome 扩展程序中运行函数
- HTML 浏览器的“文本”选择:选择整个单词(如在 iBooks 中)
- 如何使用 JavaScript 将选择扩展到单词边界,仅一次
- 如何在分隔之间选择多个单词
- 选择 h2 标签的前两个单词并换行 span 标签
- 谷歌邮件应用程序脚本中的正则表达式困难 - 在两个单词之间选择单词
- 停止 Edge 浏览器尝试跨元素选择单词
- JavaScript-从文本中选择单词
- 如何包装html标签为jquery鼠标选择单词
- 选择单词边界,但不包括标点符号