Интересно, есть ли способ выбрать одно слово в HTML, указав координату экрана (x, y). В принципе, я хотел бы иметь настраиваемый window.getSelection, но вместо запуска с помощью курсора (или касания) точкой ввода (x, y) будет вход. Благодарю.выберите одно слово в координате экрана (x, y) в html
ответ
Один 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>
Спасибо Anonymous0day. Оцените свой ответ, но нужно ли привязать к событию caretPositionFromPoint (или elementFromPoint())? – Jay
не обязательно! см. мой пример, я просто получаю координаты указателя от события, и я передаю их функции! вы можете использовать функцию без события, на выходе я добавил функцию, которую нужно вызвать с координатой, если вы попробуете ее в своем отладчике, вы получите тот же результат без события – Anonymous0day
, если вы используете мой тестовый пример, вы можете позвонить функция, чтобы получить слово «где угодно», используя 'getWordAtPosition (98, 15);' без какого-либо события – Anonymous0day
- 1. Поместите элемент html при любой координате x/y на странице
- 2. Если строка содержит слово X, выберите только слово Y
- 3. имитировать щелчок по координате x y
- 4. Получить значение UILabel в координате (x, y) в Swift
- 5. Рисование стрелки в координате (x, y) в Python
- 6. Как проверить клик на определенной координате x, y?
- 7. Как создать матрицу точек по координате X, Y в Python?
- 8. выберите записи, содержащие одно слово
- 9. Как определить, какой треугольник в модели находится при координате экрана x, y?
- 10. Как найти UIView по координате/местоположению (x, y)
- 11. Отправить щелчки мыши по координате X Y другого приложения
- 12. Показать элемент на заданной координате x-y каждые несколько мс
- 13. wxPython график оси y по указанной координате x
- 14. Как выбрать UIView на экране, основанном на координате X/Y
- 15. Случайно выберите одно слово из строки JSON
- 16. одно слово строка вектор в R
- 17. Отображение (x, y) на одно числовое значение
- 18. Если элемент содержит слово X execute Y
- 19. ExtJS4: Найти узел дерева по координате экрана или элемент HTML
- 20. Виджет главного экрана Android и x-y
- 21. Выберите случайные x верхних y записей
- 22. Выберите одно слово из нескольких слов в раскрывающемся списке
- 23. Выберите x + y, затем верните текстовую строку
- 24. если x не в (выберите y из таблицы) в oracle
- 25. Как использовать касание только для перемещения объекта в координате y?
- 26. x = y = 1 в Scala?
- 27. AS3 - мяч ударяется по координате Y
- 28. Выберите одно слово или строку (doubleclick), чтобы редактировать
- 29. Одно слово для HTML, CSS и JS
- 30. Выберите, где x в y с различной длиной
Вы можете использовать функцию .offset(). http://api.jquery.com/offset/ – DinoMyte
@ Anonymous0day, elementFromPoint() только дает мне весь элемент, а не конкретное слово. – Jay
oups вы правы! – Anonymous0day