dgelinas
asked on
Have a custom popup Alert mimic a windows alerts
I have custom alert popup made with a div. There are certain points within my code such as when the user will get logged off of the server after a certain amount of time. When this happens an Alert popups to inform the user that the session has expired and then once you click ok will bring you back to the login screen. With the current code using the div it pops up and then proceeds to do then re-directing code.
I know you can't halt the code. No points for stating the obvious. I need a work-around method. I've been trying some ideas using setTimeout to recheck whether or not the div is still visible to no avail. Any help would be great, thanks!
I know you can't halt the code. No points for stating the obvious. I need a work-around method. I've been trying some ideas using setTimeout to recheck whether or not the div is still visible to no avail. Any help would be great, thanks!
ASKER
Yes I'm going to be checking if it is visible or hidden.
But I need the code to loop checking for whether or not it is hidden and once it is then have it continue from there.
But I need the code to loop checking for whether or not it is hidden and once it is then have it continue from there.
I would do the following:
Any time the div visibility is toggle to visible, set a global variable, bolVisible, to true. When it is toggled to invisible, set the variable to false. Then you only need check the value of the variable.
FtB
Any time the div visibility is toggle to visible, set a global variable, bolVisible, to true. When it is toggled to invisible, set the variable to false. Then you only need check the value of the variable.
FtB
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
i may be lost but can you not do this
if(document.getElementById ('alertDIV ').style.v isibility == 'visible'){
// Do What you want because it is visible
}
else {
// Do what you need to since its hidden
}
if(document.getElementById
// Do What you want because it is visible
}
else {
// Do what you need to since its hidden
}
If your browser is recent enough, and the window isn't closed, then that should do it as well.
FtB
FtB
ASKER
heh must be lost.. I'm looking to something like this
function WaitForClose () {
if ( alertBox.visibility=="visi ble" )
setTimeout ( WaitForClose, 500 );
else
alertVisible = false;
}
function WaitForClose () {
if ( alertBox.visibility=="visi
setTimeout ( WaitForClose, 500 );
else
alertVisible = false;
}
ASKER
Fritz I can narrow it down and modify code in each situation(too much code), but I'd rather be able to just have it loop like I posted above. thanks for trying though
alertBox.style.visibility= ="visible"
FtB
FtB
ASKER
whoops, here it is rather, forgot the style. Anyone see why this wouldn't halt?
function WaitForClose () {
if ( alertBox.style.visibility= ="visible" )
setTimeout ( WaitForClose, 500 );
else
alertVisible = false;
}
function WaitForClose () {
if ( alertBox.style.visibility=
setTimeout ( WaitForClose, 500 );
else
alertVisible = false;
}
Also, I may be mistaken, but you might have to put your function name in delimiters:
setTimeout ( 'WaitForClose()', 500 );
setTimeout ( 'WaitForClose()', 500 );
So, putting it together:
function WaitForClose () {
if ( alertBox.style.visibility= ="visible" )
setTimeout ( "WaitForClose", 500 );
else
alertVisible = false;
}
function WaitForClose () {
if ( alertBox.style.visibility=
setTimeout ( "WaitForClose", 500 );
else
alertVisible = false;
}
function WaitForClose () {
if (document.getElementById(' alertBox') .visibilit y=="visibl e" )
setTimeout ("WaitForClose()", 500 );
else
document.getElementById('a lertBox'). visibility = "hidden"
}
if (document.getElementById('
setTimeout ("WaitForClose()", 500 );
else
document.getElementById('a
}
Hah! Beat you by 2 milliseconds!
FtB
FtB
you need to give your alert div a id and name it "alertBox"
<div id="alertBox">
<div id="alertBox">
took me 2ms to type document.getElementById
ASKER
Thanks but the reason why the code I pasted wasn't perfect is because I didn't paste it from what I was using, I typed it out because that is generally the basic idea of what I'm trying to do..
The code the way it is gives memory errors, because it puts itself in an infinite loop. There is a button found on the Div that once clicked will make it hidden, which will then effect the condition. Problem is that as soon as this code is run it gives me memory errors.
Even though I have it run itself after a specified time and check a condition it doesn't seem to be working that way I have set it to work.
The code the way it is gives memory errors, because it puts itself in an infinite loop. There is a button found on the Div that once clicked will make it hidden, which will then effect the condition. Problem is that as soon as this code is run it gives me memory errors.
Even though I have it run itself after a specified time and check a condition it doesn't seem to be working that way I have set it to work.
can you show us a link or posted the ORIGINAL code
basically all we are doing is playing a guessing game, with one script to try and make another work.
If you will post the code your having problems with, we may be able to help you get rid of the meomry leak/problem
basically all we are doing is playing a guessing game, with one script to try and make another work.
If you will post the code your having problems with, we may be able to help you get rid of the meomry leak/problem
The basic premise is fine:
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
var intCounter = 0
function showCounter(){
if(intCounter<5){
intCounter++;
alert(intCounter);
setTimeout("showCounter()" ,3000);
}
}
//-->
</SCRIPT>
</HEAD>
<BODY onLoad=showCounter()>
<P> </P>
</BODY>
</HTML>
FtB
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
var intCounter = 0
function showCounter(){
if(intCounter<5){
intCounter++;
alert(intCounter);
setTimeout("showCounter()"
}
}
//-->
</SCRIPT>
</HEAD>
<BODY onLoad=showCounter()>
<P> </P>
</BODY>
</HTML>
FtB
For me it seems you should solve the problem on your server not on the client side
Again, I would spawn the popup with the onLoad of the window from the redirect. That way, you have tighter control.
FtB
FtB
is this correct?