문제는 채팅과 같은 프로그램을 만들고있어 사용자가 창을 떠났을 때 또는 다른 창이나 탭으로 변경하면 다른 사용자가 볼 수 있도록해야한다는 것입니다. 다른 사용자가 지금 당장 페이지를 보지 못했다는 것을 의미합니다.
나는 윈도우 이벤트 포커스 아웃이 내 문제를 해결할 것이라고 생각했지만, 몇 가지 문제가있다. 첫 번째 : 사용자가 창을 떠날 때만 시작되지 않습니다. 입력 필드에 집중 한 다음 페이지의 다른 곳을 클릭하면 이벤트가 실행됩니다. 분명히 그건 용납 할 수없는 일입니다. Firefox에서 그 문제를 해결했습니다. 파이어 폭스에서 그런 일이 발생하면 브라우저는 focusout 이벤트를 한 번 발생시킨다. 그러나 창을 실제로 나가면 두 번 발사합니다. 그래서 약간의 프로그래밍으로 마술을 만들었습니다.
다음 두 번째 문제가 발생했습니다. 크롬, 나는 다른 브라우저가 똑같이 동작 할 수도 있다고 믿지만, 무엇을 하든지 포커스 아웃 이벤트 만 발생시킵니다. 창을 떠나 포커스를 입력에서 페이지로 변경하는 것은 똑같습니다. 따라서 프로그래밍이 제대로 작동하지 않았습니다.
원하는 동작을 시뮬레이트하는 방법을 아는 사람이 있습니까? 아니면 크롬과 다른 브라우저가 파이어 폭스처럼 행동하도록 만드는 방법이나 뭐든간에?
감사합니다.
나는 당신이하고 싶은 것이 실제로는 오늘날의 브라우저에서 가능하다고 생각하지 않습니다. – Pointy
'$ (document) .bind ("mouseleave", function() {...})'을 시도 했습니까? – Mottie
@Pointy'window.onblur' 핸들러는 잘 동작합니다. blur 이벤트는 사용자가 다른 탭으로 전환 할 때마다 window 객체에서 시작됩니다. –