Мне кажется, у вас есть две отдельные проблемы:
- Как захватывать и сериализовать события мыши. Это довольно просто.
- Как заново создать эти события мыши в другом контексте. Это сложно.
Даже без использования библиотеки, такой как jQuery, захват событий мыши довольно прост (особенно если, как вы подразумеваете, вы можете быть уверены в том, что браузер будет использоваться клиентом). Все, что вам нужно сделать, это прослушать событие, получить необходимую информацию и отправить ее через транспортный уровень, например,
document.body.addEventListener('click', function(e) {
sendToOtherBrowser({ type: 'click', pageX: e.pageX, pageY: e.pageY });
}, false);
Я не знаю, что для большинства событий вам понадобится гораздо больше, чем тип и местоположение события. Сложнее всего взять эти данные о событии и заново создать их в другом месте. Чтобы сделать это, как я думаю, вы заметили, вам нужно:
- захват
e.target
а
- придумает сериализуемый уникальный идентификатор для элемента DOM
- отправить идентификатор с данными вашего события
- используйте уникальный идентификатор, чтобы получить ссылку на элемент DOM в другом браузере
- использовать что-то вроде
myUniqueElement.dispatchEvent
для воссоздания события
Я бы сказал, что (2) и (4) - это сложные части - вы можете взглянуть на эти связанные вопросы для идей. Для (5) вы можете взглянуть на примеры моделирования событий здесь .
Все это говорит о том, что я понятия не имею, как это может работать для сенсорных событий - это может быть не так просто, как для событий мыши (уже не так просто).