Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.10.2017, 19:33
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Получить позицию курсора при onBlur
Отслеживаю клик по iframe с помощью такой небольшой хитрости:

frame.addEventListener('load', function() {
	window.addEventListener('blur', function(event) {
		if(document.activeElement === frame) {
			console.log(event.pageX) //undefined
		}
	});
});


Но вот не могу придумать способ, как можно отследить позицию курсора. OnMouseMove не предлагать, так как на Iframe он не распространяется. Может у кого-нибудь есть идеи, какие хитрости можно тут применить?
Есть идея периодически ставить на iframe какой-нибудь div, и чекать у него mousemove, но тут много других минусов всплывает, например: 1. Есть вероятность, что именно в момент клика этот div подставится под курсор, и соответственно - клика по iframe, как такого, не произойдёт; 2. Координаты будут неточными.

Заранее спасибо за любые идеи и предложения!
Ответить с цитированием
  #2 (permalink)  
Старый 14.10.2017, 20:37
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,007

Сообщение от ruslan_mart
Есть идея периодически ставить на iframe какой-нибудь div, и чекать у него mousemov
подозреваю, что ничего лучше не придумать.

вот набросок. https://jsfiddle.net/pcxrxfqo/
"шпион" присутствует 10% времени. Слежение не совсем точное, но тем не менее. Кликнуть по шпиону не так просто. Да и если произойдет, то пользователь не расстроится и просто кликнет ещё раз.

а так, понятное дело, следить нельзя, "песочница" и всё такое, браузер умышленно защищает.
Ответить с цитированием
  #3 (permalink)  
Старый 14.10.2017, 21:06
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Alexandroppolus, придумал похожее решение как у Вас, работает на 90%. Кому интересно - в ЛС.

Я просто хочу, чтобы когда кликаешь по iframe, то он убирался и определялась позиция клика, по которой получаем элемент на странице c помощью document.elementFromPoint и имитируем по нему клик. Итог: пользователь кликает одновременно и в айфрейм и в реальный элемент.

P.S.: iframe невидимый.

P.P.S.: жалко, что не мобильных устройствах эти хитрости с событиями мыши провернуть не получится.

Последний раз редактировалось ruslan_mart, 14.10.2017 в 21:12.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена bg-image при наведении курсора dmitry_martt Элементы интерфейса 6 11.01.2015 14:57
iframe desighmode=on получить текст от курсора до начала слова w3c браузеры hazarin Общие вопросы Javascript 0 08.07.2014 23:38
Как получить innerHTML при клике prope Общие вопросы Javascript 3 10.01.2014 17:13
поворот изображения при наведении курсора Сергей545 Элементы интерфейса 4 04.12.2013 22:00
изменения рисунка при наведении курсора Kenan Bek Events/DOM/Window 24 19.12.2010 20:48