This question has been raised many times on "How to check if the popup is blocked on my browser or not" and all the solutions that i found have proposed a solution where a new popup window is opened for testing.
References:
"Detect blocked popup in Chrome"
"How can I detect if a browser is blocking a popup?"
etc.
I would like to know if there is any possibility of knowing a blocked popup, without actually opening one.
Because due to many reasons the test pop up may take time to close, which looks ugly on start-page of your application.
For example if we could use anything from the request header from the client, to know the popup preferences etc like we can get for the language preferences.
It'll be a huge help. Thanks
As far as I know, popup blockers works by overwrite a window.open
function and in most cases return a null
. So one way is to detect if window.open
is still nativ function.
You can test that with toString
method, which return [native code]
as a body of that function. toString
not work in old IE, so instead of that use ''+
to convert function.
var havePopupBlockers = ('' + window.open).indexOf('[native code]') === -1;
This is not silver bullet, but can detect potential risk. I test this on Chrome, FF, IE8 and IE9 with some various popup blockers and works.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With