Have you ever heard of Sheb Wooley? No, well what if I say Star Wars, Lord Of The Rings, Indiana Jones, Batman, Toy Story, some Tarantino movies, etc.? He appeared in all these (in total 114) movies without ever actually being physically present on the film set, and you won’t see him in the film either. It all started in the 50’s when Ben Burt and his colleague agreed to use Wooley as much as possible in every movie they were involved with. Soon Wooley became a cult figure and a lot of directors used him, even after his death in 2003.
Why am I saying this, and what is this all about? Well, put your speakers on max. volume and play this . I have to admit that I produce this Wilhelms’-scream (yep, it has a name too) myself sometimes. Not by putting this sound on any of my machinery gone is the time when I used to search for hidden sounds in Mac applications with ResEdit and set them as tunes for receiving mail or other events – nor for any of my film activities . No, it bursts out of my mouth when I encounter a problem or something doesn’t behave as it should. I gave my colleagues a fright recently by making this noise when I was dealing with popups, or rather the software that should block them. I have never yet met a decent popup blocker on which one can rely.
Blocking the way
We work a lot with popups in our BSP applications for e.g. picking a date, showing help or details info. This is very useful when one doesn’t want the original application screen to remain viewable. However implementinh them is rather tedious. Not that the code is complicated:
var win = open ("some_URL","title","location=0,scrollbars=yes,toolbar=no,dependent=yes, screenX=0,screenY=0,height=200,resizable=no,width=450,status=no,menubar=0");
The trouble makers are the popup blockers. There is no standard way in which they work. MIE doesn't seem to block any popups within the same network. Firefox blocks everything, even if you explicitly open them via link. I always thought that the initial intention was that they should block the unwanted commercial popups. The thing is that I still get them, despite a popup blocker. And advertisers are smarter than that. They use DHTML these days to decoy the blockers. So I wonder what the use is of the blocker these days. They make the life of a web developer that bit harder. Since one can't control these popup blockers, people complain that our applications don't work. Some people have deliberately set up their popup blocker, some don't even know that it's standard in their browser. We get complaints even when we specify instructions in a highly visible way in the application. It appears that either these instructions for letting our applications through are not read, or people think that the instructions don't apply to them.
So what can you do in order to get your apps running as they should? You can definitely not intervene in the way these blockers work. First of all, there are so many of them, and they all work differently. Most obviously blockers would become useless if you could switch them off for your site. The only thing that you can really do is to detect whether one is running or not and thereby blocking your popups. That's an easy one. Just put the following in the main page of your app:
What does it do? It tries to open a popup with no URL. If you get a null, or an undefined back, you know that something is going wrong (the popup is being blocked) and you give a message in return.
You can opt to include this code each time you open a new window. That's up to you.