I have a requirement, where I need to send all user actions in browser to a remote application. Like user hits a link, types in textfield / textarea, selects a choice etc. On browser side I am using Javascript to listen to events and then sending those to remove application using websocket. My code looks as below.
var sock = new WebSocket("ws://192.168.1.2:8082", "tci");
function user_intercept_click_event(e)
{
var target = e.target || e.srcElement;
sock.send(target);
console.log(target);
}
function user_intercept_key_press(e)
{
var target = e.target || e.srcElement;
sock.send(target);
console.log(target);
}
if(document.addEventListener)
{
document.addEventListener('click', user_intercept_click_event);
document.addEventListener('keypress', user_intercept_key_press);
}
else if(document.attachEvent)
{
document.attachEvent('onclick', user_intercept_click_event);
document.attachEvent('onkeypress', user_intercept_key_press);
}
window.onbeforeunload = function(evt)
{
sock.close();
return null;
}
Let’s say I click on a textfield with id as endpoints1, then
the console log prints proper value, like
Where as in remote application I get
[object HTMLInputElement]
I want to get complete string as printed in console log in remote application. How can I get it? Any help highly appreciated.
Advertisement
Answer
Try:
sock.send(target.outerHTML);