Hello,
Form POST targeting to specific frame or dialog popped up via window.open() no longer works in IE11.
It worked fine in IE10 and all previous versions of IE.
Please see screenshot attached with simple test that reproduces this problem.
Direct Link to screenshot:
http://173.231.98.44/cgi/TestFolder/IE_11_widow_frame_targeting_BUG.jpg
Direct link to simple test page demonstrating this problem:
http://173.231.98.44/cgi/TestFolder/page2.asp
Note: IE11 doesn't report any errors, doesn't complain about anything, even when debugged via F12 developer tools. The only thing it complained initially was missing doc type declaration on top of page, but even after adding doc type definition, problem still
persists, makes no difference.
Image may be NSFW.
Clik here to view.
I tested this on fresh install of Windows 2012R2 while testing our web application with the new IE11.
I believe doing this on Windows 8.1 with IE11 will result in same bug/problem.
Our web application uses a technique whereby it launches a popup window via call to window.open(), passing blank URL and specifying a name for the new window. It then does a from post targeting the name of new dialog.
In IE11 this functionality has been broken and no longer works.
Problem is that IE11, instead of posting form to the newly created dialog, it launches a new instance of IE and then loads the requested form in this new instance of IE, while the dialog launched via window.open() remains on screen and is empty. If user repeats
launching same form post request (via button click for example), IE 11 keeps creating new empty dialogs and new IE instance for every form post executed. This totally breaks our application because we use many so called "wizards" that encapsulate
specific functionality in separate web page launched in a popup window.
Another related problem is that if a dialog is launched with window.open(), the java script code in the dialog can not target the parent frame that opened the dialog anymore. In our application, when a dialog is closed, it typically needs to trigger a refresh of a specific frame within the parent window (again targeted by name) to reflect saved/updated info that user entered in the popup dialog. The result is that we can't refresh the parent frame after the pop up dialog closes. Instead, IE11 launches a new instance of IE (not just a tab, but a whole new instance) and loads the parent frame in it.
The problem seems to be caused by broken frame name targeting mechanism in IE11.
Note that we force IE to compatibility mode 5, but even without specifying any compatibility, the problem remains.
Typical java script to reproduce this is:
<input type="button" onClick="Popup(this.form);" name="btn2" value="Popup Dialog">
function Popup(f){
window.open("","MyNewDialogName","width=200,height=150");
f.action = "page3.asp";
f.target = "MyNewDialogName";
f.submit();
}
Expected: IE11 should correctly post form to and load targeted page in the newly popped up dialog, without opening new IE instance and new tab. Repeatedly posting form to existing popup window should reuse that window, not keep on launching more popup windows
and then more IE instances.
Steps to reproduce the problem (include URL if applicable):
URL with sample page: http://173.231.98.44/cgi/TestFolder/page2.asp
1) Create page1.htm: <html><body>display "I'm in a popup window now ..."</body></html>
2) Create page2.htm with a button and onclick() event calling function to open dialog, and do form POST targeting new dialog calling page1.htm, like below.
<input type="button" onClick="Popup(this.form);" name="btn2" value="Popup Dialog"> function Popup(f){
window.open("","MyNewDialogName","width=200,height=150");
f.action = "page1.asp";
f.target = "MyNewDialogName";
f.submit();
}
3) Open IE11, navigate to page2.htm, click the "Popup Dialog" dialog button. IE 11 will popup the new dialog, but then it will also launch new instance of IE11 and display the page1.htm in it, instead of in the popup dialog.
Has anyone else encountered this problem?
Any insight or help is appreciated.
Regards
Peter