I also worked around this by using an iframe, and pointing the form's (or anchor's) target attribute to that iframe. Some browsers don't like it when the iframe is set to visibility:hidden or display:none. If you make it position:absolute;height:0;width:0;border:0; it should be ok.
Now, I want to know when the 'save file' pop up is displayed to the user (=> when the server has done processing the user's request). Apparently, the iframe's load event is not triggered when the server does not give back any text/html. Any workaround for this?