Determine Window Focus | Language: | Client Side - JavaScript | Author: | Jon Lokken | Date: | 6-29-2005 | |
| Description: | View Example | This is used to show the focused window on a group of windows. |
<script type="text/javascript"> var myFocus = true; var children = Array(); var statusMessage = "";
window.onload = init; window.onfocus = doFocus; window.onbeforeunload = confirmExit;
function confirmExit(){ var alertValue = window.confirm("Are you sure?"); if(!alertValue){ return false; } } function init(){ setTimeout("myDetails()", 5000); } function doFocus(){ myFocus = true; // Unfocus my children and all of their Children; unfocusChildren(); // Unfocus my parent and all brothers and sisters; unfocusParent(); }
function unfocusParent(){ try{ var parent = window.opener; if(!parent.closed){ parent.myFocus = false; parent.unfocusBrothers(window.name); parent.unfocusParent(); } } catch(err) { // Do Nothing; } } function unfocusBrothers(myWindowName){ var win2Name = myWindowName for(var i=0;i<children.length;i++){ if((!children[i].closed) && (children[i].name != win2Name)){ children[i].myFocus = false; children[i].unfocusChildren(); } } } function unfocusChildren(){ for(var i=0;i<children.length;i++){ if((!children[i].closed)){ children[i].myFocus = false; children[i].unfocusChildren(); } } }
function openNewWindow(strPageName, title){ var strAttrib ="height=400,width=500,ScreenX=0,screenY=400,left=0,top=0,resizable, toolbar=no,menubar=no,location=no,scrollbars=yes,status=no"; var today = new Date(); var millisec = today.getMilliseconds(); var strWinRef = "title" + millisec; children[children.length++] = window.open(strPageName, strWinRef, strAttrib); myFocus = false; }
function myDetails(){ statusMessage = statusMessage + "--------------------------<br>"; statusMessage = statusMessage + "My Details...<br>"; statusMessage = statusMessage + "My Name:"+window.name+"<br>"; statusMessage = statusMessage + "My Focus:"+myFocus+"<br>"; listMyParent(); listMyChildren(); document.getElementById("childList").innerHTML = statusMessage +document.getElementById("childList").innerHTML; statusMessage = ""; setTimeout("myDetails()", 5000); } function listMyParent(){ statusMessage = statusMessage + "Listing Parent...<br>"; try{ if(!window.opener.closed){ statusMessage = statusMessage + "Parent:"+window.opener.name+"<br>"; } } catch(err) { statusMessage = statusMessage + "Parent:None<br>"; } } function listMyChildren(){ statusMessage = statusMessage + "Listing Children...<br>"; if(children.length == 0){ statusMessage = statusMessage + "Children:None<br>"; } else { for(var i=0;i<children.length;i++){ if(!children[i].closed){ statusMessage = statusMessage +"Child Window ("+i+")("+children[i].name+") hasfocus?"+children[i].myFocus+"<br>"; } } } } </script>
Disclaimer: | Feel free to use this code I have written. I only ask that you leave my name in the comments. I take no responsibility for this code working, imply no warranty as to it's validity, and will not be held liable if you decide to try it. I am only trying to help out others so they don't have to struggle with the same problems as me... | |