Opened 13 years ago
Closed 13 years ago
#1660 closed defect (fixed)
Internet Explorer 9 won't open popup windows
Reported by: | Nicklas Nordborg | Owned by: | everyone |
---|---|---|---|
Priority: | critical | Milestone: | BASE 3.0.3 |
Component: | web | Version: | 2.17.2 |
Keywords: | Cc: |
Description
Some times Internet Explorer 9 will not open popup windows. It was first discovered while trying to download a file but seems to be happening for other popup windows as well.
It's a bit hard to exactly describe how to trigger this since at first everything works normally and then it stops working. There is no error message that is visible for the user. Opening the developer tools (F12) and switching to the 'Console' tab it is possible to see an error message:
SCRIPT70: Permission denied
Once it has stopped working for a given popup window it will not start working again, but other popups may still work. There are some workarounds:
- Closing the tab with BASE and then opening a new tab and logging into BASE seems to help for some time (until the problem appears again).
- Adding the BASE site to the "Trusted sites" (Tools -> Internet options -> Security) list seems to prevent the problem from appearing in the first place.
Change History (3)
comment:1 by , 13 years ago
comment:2 by , 13 years ago
(In [5947]) References #1660: Internet Explorer 9 won't open popup windows
I think this fixes the problems with IE9. I have not been able to see the issue after the changes. With the old code it usually possible to see the problem withing 5-10 clicks. The fixes include:
- Always use the code in the top-level window (frameset) to open popup windows. This get rid of the closed-parent problem which seems to be a possible cause. But we still need to use the true parent window since a lot of popup windows uses the
window.opener
property to communicate values back and forth.
- Check the URL length before opening a blank window. If the POST form is not needed we simply open the window with the correct URL to begin with. If a POST form is needed we open a window with a real URL referencing a blank window. This should hopefully get rid of cross-site-scripting issues.
- Use exception handling when getting old popup window information. If we can't access the information the old popup is probably already closed and the code can at least continue and open a new popup.
comment:3 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
I have made some investigations now and my best guess is that some kind of cross-site scripting protection is kicking in. It's a bit hard to debug this since I have not been able to find any simple procedure to reproduce the problem. Sometimes it seems like adding debug code and messages makes the problem go away.
But I think the the problem is coming from code that was implemented to fix some other issues (#1363/#637 and #1032). Not calling the code that protects against those problems also seems to get rid of the IE9 problems, but we need the protection so I'll hope that it can be implemented differently.