The new advanced pop-up blocker feature of IE (from 6 onwards) might have given more control over the browsing experience as they claim (here) but definitely made my life difficult for a while!
Well.. we have been developing the web-application at our company assuming that our end users will add the appl. url as “allowed sites”. So, I did not have to worry about these stupid pop-up blockers. But then all of a sudden came a time-bomb (yea.. the change request has a tight deadline!) saying that these pop-up blockers should be avoided even if the user does not add the site as “allowed” ones.
After scratching my head for a while and searching frantically through the net, I found this documentation (with the help of my colleague) which gives details about what and what not the IE pop-up blocker will block. Basically the blocker will block all the pop-ups opened by script automatically especially if the user has not clicked any button or link in a page. Sounds good! Doesn’t it?
BUT.. (well that’s a very big but!) this good rule troubled my life a lot.
Trouble with AJAX
In the log-in page, I have been using AJAX to do a little bit of validation and then open a new window if validation succeeds or throw an error message in the same window if validation fails after the user clicks on the log-in button. (Using Ajax here was more beneficial for me rather than the traditional form submit like I can show some authenticating status in my log-in page when the server is actually authenticating – I can’t do this in form submit) But our famous pop-up blocker says my AJAX method can’t open the new window after validation succeeds because there is a time delay between the user clicking the log-in button and the method opening a new window. So the blocker thinks that my code is malicious and prevents it!! 😐
This is not only for my login page. There has been other pages where I process something using AJAX and based on the response, I decide to open a child window or not. All these places have to be changed because our pop-up blocker doesn’t like the time delay due to AJAX processing. It wants the windows to be opened right after the click or not open at all. Sounds great! huh?
Handling short-cut keys
Now, this is really even more stupid compared to the previous one! We have these short-cut keys like Cntrl+N for adding, Cntrl+E for editing just like any other windows application. Now when the user is going to press Cntrl+N for adding a new record, the pop-up blocker won’t let my add window open because the user has not “clicked” any button/link! So, we can’t let our users to even use short-cut keys in our application! How sweet!!
We tried work-arounds like pop-under to open the pop-up right away and then show it only when validation succeeds or silently close it.. But even those pop-unders are blocked! I don’t know if the great pop-up blocker actually blocks all the malicious pop-ups (I did see other stupid advertisement pop-ups opening up when browsing!) but it create a lot of trouble for me. And, I don’t think there is any work-around available for the second problem with the short-cut keys in the first place!!
Any developer out there got troubled by the pop-up blocker of IE?? Or… is it just me?