
I am raw html block.
Click edit button to change this html
Recently at work I was asked to make javascript:window.close(); work in FireFox. I searched hard and long across numerous forums and on each and every one the answer was the same - it cannot be done unless the page was opened by a script! Or at least it couldn't until I was asked to make it happen :-)
I'm by no means a JavaScript expert - in fact I hardly know any at all - but I couldn't believe that this was completely impossible so I came up with the following:
The first step is to fool the browser into thinking that it was opened with a script...
window.open('','_parent','');
This opens a new page, (non-existent), into a target frame/window, (_parent which of course is the window in which the script is executed), and defines parameters such as window size etc, (in this case none are defined as none are needed). Now that the browser thinks a script opened a page we can quickly close it in the standard way...
window.close();
And there you have it - I told you it was simple! In case you didn't follow that, here is the complete solution in two easy steps:
1. Copy/paste the following code to the head of your page...
<script language="javascript" type="text/javascript">
function closeWindow() {
window.open('','_parent','');
window.close();
}
</script>
2. Set your link like this:
<a href="javascript:closeWindow();">Close Window</a>
This is actually only my second JavaScript experiment but please feel free to check out a couple of my CSS experiments if you like, where you can also read a little more about me.
© 2006 Marcos J. Drake - Your New Designer.
We use cookies from third party services to offer you a better experience. Read about how we use cookies and how you can control them by clicking "Privacy Preferences".