473,573 Members | 3,023 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Using onblur to detect loss of window focus

I'm struggling with the JavaScript blur event. I have an activex
control that I need to interact with when a window loses focus, namely
to instruct it to give up control of a barcode scanner so that the
application being brought foreward can take control.

It has been my observation that when I set the window.onblur function,
the window will gain focus and then immediately lose focus (blur) to
the first field, button, or whatever that is contained within the
window. I can observe a text field gaining and losing focus as I
switch between applications but its parent window will *never* receive
any blur events as I switch between applications, so long as the
cursor remains in the text field.

Is there any way with JavaScript to know when the user is switching
focus from the browser window to some other application without having
to code logic into every friggin field on the page?

Jul 20 '05 #1
1 16560
Barry Svee wrote:
I'm struggling with the JavaScript blur event.
There are no JavaScript events, JavaScript itself neither provides
events nor event handling. Events and event handlers are provided
by the DOM of the used host, e.g. a HTML user agent.
I have an activex control that I need to interact with when a window ^^^^^^^^^^^^^^^ loses focus, [...]
And the IE browser component (IE) does not support JavaScript.
It supports JScript, Microsoft's implementation of ECMAScript,
which is nevertheless on-topic here. (See the FAQ.)
It has been my observation that when I set the window.onblur function,
To *what*? That is important.
the window will gain focus and then immediately lose focus (blur) to
the first field, button, or whatever that is contained within the
I fail to observe that in my IE 6.0 SP-1 on Win2k (SP-4). Instead, I
observe that if a browser window is focused and the focus comes from
another application window, "onfocus" fires. If the focus comes from
another IE window, sometimes "onfocus", "onblur" and "onfocus" fire
(in that order) and sometimes only "onfocus" (the former is alas not
reproducible). No matter if the focus is lost in favor of another
application window or another IE window, "onblur" fires once.

Test Code was

javascript:void (window.onblur= function() {
document.body.a ppendChild(docu ment.createText Node("; onblur")); });
void(window.onf ocus=function() {
document.body.a ppendChild(docu ment.createText Node("; onfocus")); })

applied to about:blank.
Is there any way with JavaScript to know when the user is switching
focus from the browser window to some other application
No, there is not, unless the IE-DOM provides a property that I do not
know of. Maybe you can find it in
without having to code logic into every friggin field on the page?

You need an event listener (function) for the "focus" event and apply it
to every window of your application, i.e. every displayed document of
it. The challenge you have to face is that the browser windows know
each other only if they are opened through window.open(... ). You can
then use the "opener" property of a window to reference the window that
opened it. In that first window you could maintain a list of references
to window objects as elements of an array or properties of a
user-defined object and thus reference the window to be changed on an event.
Jul 20 '05 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

by: Maria Bitsku | last post by:
How do I deactivate a window using Javascript. For example if I have a window that opens up another window, how do I prevent the user from clicking (doing anything) in the original window until the new window has been closed. Any insight will help. Thank you very much in advanced.
by: CW | last post by:
I wrote an HTML based chat application. The front end is built entirely on HTML + javascript. Essentially, I have a hidden frame that's refreshed frequently and any new messages are displayed in another frame using document.write. My problem is that since chat screen can be obscured by other applications/windows, I have no way of informing...
by: D. Alvarado | last post by:
Hi, I'm having some trouble with the "onBlur" event in the BODY tag. Ideally, what I want to happen is that when someone leaves window A, window A executes a command. I had put <body onBlur="savePage();"> I have a couple of problems. On IE 6 (win2000), whenever I put the cursor focus on a textfield within window A, the "savePage"...
by: rob | last post by:
Hi I'm trying to create a "roll-up" effect when a window loses focus and then "roll-down" when it regains focus. This statement works properly with every browser I can get my hands on EXCEPT WinIE6. WinIE6 says there's an error in the code, but the debugging info says the problem is on line 1 char 1, which are comments. <Body...
by: Peter Pagé | last post by:
Hi, I've got a window with a "<body onBlur="window.close()"> tag that keeps closing prematurely. It happens when the user clicks on text inside a table in the same window. Apparently IE decides that the <body> no longer has the focus if the <table> within the <body> has it. Firefox handles the page correctly as does MS 5. This may be...
by: Dave Hammond | last post by:
Hi All, I have a web form which performs certain actions upon moving focus away from a field. However, if the user clicks the top corner 'X' icon to close the window, the onBlur event still fires. If, for example, the onBlur event was an alert() popup: when the user clicks the close window icon, the window closes and then the alert pops...
by: paulsson | last post by:
Does anyone know why placing the cursor/focus in a textfield in IE would cause the window.onblur event handler to be called? This seems very odd since the window still has focus.... Is there a way to prevent window.onblur form being called when a textfield in the same window gets focus or to test if the currently focused element is a textfield...
by: John Kotuby | last post by:
Hello all... I am working on an ASP.NET 2.0 application with VS2005 and VB. I have chosen to use popup windows in some cases because it makes the user experience better (according to all the users I have polled who will be using this app). In an attempt to keep the popup from disappearing behind the calling window, I am adding the...
by: raylopez99 | last post by:
KeyDown won't work KeyPress fails KeyDown not seen inspired by a poster here:http://tinyurl.com/62d97l I found some interesting stuff, which I reproduce below for newbies like me. The main reason you would want to do this is for example to trigger something from an OnPaint event without resorting to boolean switches-- say if a user...
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language...
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. ...
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.