You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "David Rain (JIRA)" <ji...@apache.org> on 2012/08/14 12:12:37 UTC

[jira] [Created] (WICKET-4708) AJAX component replace: NoModificationAllowedError in IE 10 (Windows 8)

David Rain created WICKET-4708:
----------------------------------

             Summary: AJAX component replace: NoModificationAllowedError in IE 10 (Windows 8)
                 Key: WICKET-4708
                 URL: https://issues.apache.org/jira/browse/WICKET-4708
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 1.5.7, 1.5.5
         Environment: Windows 7 64-bit as VMware Play host
VMware image with Windows 8 Release Preview build 8400
Internet Explorer 10 (desktop version, not Metro)
JRE 1.7.0_05
            Reporter: David Rain


Function Wicket.replaceOuterHtmlIE fails in IE 10 beacause of NoModificationAllowedError. That is fired because of attempt to modify outerHTML of elements which parent is in turn set to null. IE 10 doesn't allow setting outerHTML of elements which parent is null. This was confirmed to us by Microsoft. Bad is that it isn't just an issue of the preview version. It isn't considered as a bug by Microsoft. So this comment https://issues.apache.org/jira/browse/WICKET-1186?focusedCommentId=13400468&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13400468 does not solve the problem. MS won't fix anything. And I can't imagine moving to (nowadays beta) Wicket 6 and re-testing whole application.

Problem is around line 289 a 298 of wicket-ajax.js. When these lines fail, the Wicket.Head.addJavascripts cycle is skipped then and pages work weird then.

I think that setting local references to null and outerHTMLs to "" isn't needed. The elements were removed from DOM by removeChild so there is no need to null local variables at all. But at least that should be wrapped in try/catch or placed at the very end of the method so that failure doesn't influence the rest of the code.

And I found another possible mistake at line 298 - the tempDiv.outerHTML = ""; should be in the if block together with document.body.removeChild(tempDiv); I think.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (WICKET-4708) AJAX component replace: NoModificationAllowedError in IE 10 (Windows 8)

Posted by "Martin Grigorov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-4708?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov resolved WICKET-4708.
-------------------------------------

    Resolution: Won't Fix

Manipulating a detached element (like an element without a parent) is perfectly valid. It is often used as an optimized way to change something in the HTML without requesting re-rendering of the page until ready with all your changes.

It was a bug in IE10 beta/preview.
                
> AJAX component replace: NoModificationAllowedError in IE 10 (Windows 8)
> -----------------------------------------------------------------------
>
>                 Key: WICKET-4708
>                 URL: https://issues.apache.org/jira/browse/WICKET-4708
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.5, 1.5.7
>         Environment: Windows 7 64-bit as VMware Play host
> VMware image with Windows 8 Release Preview build 8400
> Internet Explorer 10 (desktop version, not Metro)
> JRE 1.7.0_05
>            Reporter: David Rain
>
> Function Wicket.replaceOuterHtmlIE fails in IE 10 beacause of NoModificationAllowedError. That is fired because of attempt to modify outerHTML of elements which parent is in turn set to null. IE 10 doesn't allow setting outerHTML of elements which parent is null. This was confirmed to us by Microsoft. Bad is that it isn't just an issue of the preview version. It isn't considered as a bug by Microsoft. So this comment https://issues.apache.org/jira/browse/WICKET-1186?focusedCommentId=13400468&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13400468 does not solve the problem. MS won't fix anything. And I can't imagine moving to (nowadays beta) Wicket 6 and re-testing whole application.
> Problem is around line 289 a 298 of wicket-ajax.js. When these lines fail, the Wicket.Head.addJavascripts cycle is skipped then and pages work weird then.
> I think that setting local references to null and outerHTMLs to "" isn't needed. The elements were removed from DOM by removeChild so there is no need to null local variables at all. But at least that should be wrapped in try/catch or placed at the very end of the method so that failure doesn't influence the rest of the code.
> And I found another possible mistake at line 298 - the tempDiv.outerHTML = ""; should be in the if block together with document.body.removeChild(tempDiv); I think.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (WICKET-4708) AJAX component replace: NoModificationAllowedError in IE 10 (Windows 8)

Posted by "David Rain (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WICKET-4708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13436580#comment-13436580 ] 

David Rain commented on WICKET-4708:
------------------------------------

Hi Martin! Yes, I am aware that Wicket 6 will use jQuery and thus the situation will be completely different. Although, there was an issue in jQuery with this IE 10 expception too. But it was solved (I've read).
Our problem is that Wicket 6 is still beta now. Windows 8 will start selling in October. Let's say that in October Wicket 6 will already have a stable version. But it will be one of the first versions and we cannot risk any potentional bugs that weren't discovered during beta testing. Complete retest of our application(s) takes about 3-4 months and aroud 50 testers. Moreover, Wicket 6 brings some new features and isn't 100% backwards compatible I think (according to what I've read in migration guide). We moved from 1.4 to 1.5 before and it took us about a month to rewrite some portions of the code.
So we won't move to Wicket 6 until it is "tested by people" in final version(s) and bugs are removed. An my opinion is that current stable version as of now should be as much solid as possible even though Wicket 6 is being developed and this old code will be abandoned soon.
                
> AJAX component replace: NoModificationAllowedError in IE 10 (Windows 8)
> -----------------------------------------------------------------------
>
>                 Key: WICKET-4708
>                 URL: https://issues.apache.org/jira/browse/WICKET-4708
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.5, 1.5.7
>         Environment: Windows 7 64-bit as VMware Play host
> VMware image with Windows 8 Release Preview build 8400
> Internet Explorer 10 (desktop version, not Metro)
> JRE 1.7.0_05
>            Reporter: David Rain
>
> Function Wicket.replaceOuterHtmlIE fails in IE 10 beacause of NoModificationAllowedError. That is fired because of attempt to modify outerHTML of elements which parent is in turn set to null. IE 10 doesn't allow setting outerHTML of elements which parent is null. This was confirmed to us by Microsoft. Bad is that it isn't just an issue of the preview version. It isn't considered as a bug by Microsoft. So this comment https://issues.apache.org/jira/browse/WICKET-1186?focusedCommentId=13400468&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13400468 does not solve the problem. MS won't fix anything. And I can't imagine moving to (nowadays beta) Wicket 6 and re-testing whole application.
> Problem is around line 289 a 298 of wicket-ajax.js. When these lines fail, the Wicket.Head.addJavascripts cycle is skipped then and pages work weird then.
> I think that setting local references to null and outerHTMLs to "" isn't needed. The elements were removed from DOM by removeChild so there is no need to null local variables at all. But at least that should be wrapped in try/catch or placed at the very end of the method so that failure doesn't influence the rest of the code.
> And I found another possible mistake at line 298 - the tempDiv.outerHTML = ""; should be in the if block together with document.body.removeChild(tempDiv); I think.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (WICKET-4708) AJAX component replace: NoModificationAllowedError in IE 10 (Windows 8)

Posted by "Martin Grigorov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WICKET-4708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13436576#comment-13436576 ] 

Martin Grigorov commented on WICKET-4708:
-----------------------------------------

Wicket 6 uses jQuery for the DOM management. It should work better than our code.
                
> AJAX component replace: NoModificationAllowedError in IE 10 (Windows 8)
> -----------------------------------------------------------------------
>
>                 Key: WICKET-4708
>                 URL: https://issues.apache.org/jira/browse/WICKET-4708
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.5, 1.5.7
>         Environment: Windows 7 64-bit as VMware Play host
> VMware image with Windows 8 Release Preview build 8400
> Internet Explorer 10 (desktop version, not Metro)
> JRE 1.7.0_05
>            Reporter: David Rain
>
> Function Wicket.replaceOuterHtmlIE fails in IE 10 beacause of NoModificationAllowedError. That is fired because of attempt to modify outerHTML of elements which parent is in turn set to null. IE 10 doesn't allow setting outerHTML of elements which parent is null. This was confirmed to us by Microsoft. Bad is that it isn't just an issue of the preview version. It isn't considered as a bug by Microsoft. So this comment https://issues.apache.org/jira/browse/WICKET-1186?focusedCommentId=13400468&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13400468 does not solve the problem. MS won't fix anything. And I can't imagine moving to (nowadays beta) Wicket 6 and re-testing whole application.
> Problem is around line 289 a 298 of wicket-ajax.js. When these lines fail, the Wicket.Head.addJavascripts cycle is skipped then and pages work weird then.
> I think that setting local references to null and outerHTMLs to "" isn't needed. The elements were removed from DOM by removeChild so there is no need to null local variables at all. But at least that should be wrapped in try/catch or placed at the very end of the method so that failure doesn't influence the rest of the code.
> And I found another possible mistake at line 298 - the tempDiv.outerHTML = ""; should be in the if block together with document.body.removeChild(tempDiv); I think.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (WICKET-4708) AJAX component replace: NoModificationAllowedError in IE 10 (Windows 8)

Posted by "David Rain (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WICKET-4708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13434055#comment-13434055 ] 

David Rain commented on WICKET-4708:
------------------------------------

I experimented a bit and found out that it is sufficent to switch order of lines. That means call XXX.outerHTML = "" *before* someParent.removeChild. Because in this order the XXX element still has parent and IE 10 will permit such a call. removeChild removes the XXX from hierarchy and thus any subsequent call to outerHTML will fail because it has no longer any parent.
                
> AJAX component replace: NoModificationAllowedError in IE 10 (Windows 8)
> -----------------------------------------------------------------------
>
>                 Key: WICKET-4708
>                 URL: https://issues.apache.org/jira/browse/WICKET-4708
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.5, 1.5.7
>         Environment: Windows 7 64-bit as VMware Play host
> VMware image with Windows 8 Release Preview build 8400
> Internet Explorer 10 (desktop version, not Metro)
> JRE 1.7.0_05
>            Reporter: David Rain
>
> Function Wicket.replaceOuterHtmlIE fails in IE 10 beacause of NoModificationAllowedError. That is fired because of attempt to modify outerHTML of elements which parent is in turn set to null. IE 10 doesn't allow setting outerHTML of elements which parent is null. This was confirmed to us by Microsoft. Bad is that it isn't just an issue of the preview version. It isn't considered as a bug by Microsoft. So this comment https://issues.apache.org/jira/browse/WICKET-1186?focusedCommentId=13400468&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13400468 does not solve the problem. MS won't fix anything. And I can't imagine moving to (nowadays beta) Wicket 6 and re-testing whole application.
> Problem is around line 289 a 298 of wicket-ajax.js. When these lines fail, the Wicket.Head.addJavascripts cycle is skipped then and pages work weird then.
> I think that setting local references to null and outerHTMLs to "" isn't needed. The elements were removed from DOM by removeChild so there is no need to null local variables at all. But at least that should be wrapped in try/catch or placed at the very end of the method so that failure doesn't influence the rest of the code.
> And I found another possible mistake at line 298 - the tempDiv.outerHTML = ""; should be in the if block together with document.body.removeChild(tempDiv); I think.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (WICKET-4708) AJAX component replace: NoModificationAllowedError in IE 10 (Windows 8)

Posted by "David Rain (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WICKET-4708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13435845#comment-13435845 ] 

David Rain commented on WICKET-4708:
------------------------------------

I have now tried Windows 8 Pro RTM version from MSDN and this problem no longer appears in IE 10. Strange, according to previous MS statement, that this behaviour wasn't a bug!?! Nevertheless I still think this piece of Javascript code should be revised.
                
> AJAX component replace: NoModificationAllowedError in IE 10 (Windows 8)
> -----------------------------------------------------------------------
>
>                 Key: WICKET-4708
>                 URL: https://issues.apache.org/jira/browse/WICKET-4708
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.5, 1.5.7
>         Environment: Windows 7 64-bit as VMware Play host
> VMware image with Windows 8 Release Preview build 8400
> Internet Explorer 10 (desktop version, not Metro)
> JRE 1.7.0_05
>            Reporter: David Rain
>
> Function Wicket.replaceOuterHtmlIE fails in IE 10 beacause of NoModificationAllowedError. That is fired because of attempt to modify outerHTML of elements which parent is in turn set to null. IE 10 doesn't allow setting outerHTML of elements which parent is null. This was confirmed to us by Microsoft. Bad is that it isn't just an issue of the preview version. It isn't considered as a bug by Microsoft. So this comment https://issues.apache.org/jira/browse/WICKET-1186?focusedCommentId=13400468&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13400468 does not solve the problem. MS won't fix anything. And I can't imagine moving to (nowadays beta) Wicket 6 and re-testing whole application.
> Problem is around line 289 a 298 of wicket-ajax.js. When these lines fail, the Wicket.Head.addJavascripts cycle is skipped then and pages work weird then.
> I think that setting local references to null and outerHTMLs to "" isn't needed. The elements were removed from DOM by removeChild so there is no need to null local variables at all. But at least that should be wrapped in try/catch or placed at the very end of the method so that failure doesn't influence the rest of the code.
> And I found another possible mistake at line 298 - the tempDiv.outerHTML = ""; should be in the if block together with document.body.removeChild(tempDiv); I think.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira