Jamie Goodfellow created MYFACES-4683:
-----------------------------------------
Summary: Scripts executed in reverse order during ajax event
Key: MYFACES-4683
URL: https://issues.apache.org/jira/browse/MYFACES-4683
Project: MyFaces Core
Issue Type: Bug
Components: General
Affects Versions: 4.1.0-RC2
Environment: Windows, Chrome
Reporter: Jamie Goodfellow
When myfaces handles an ajax request, the script tags of the rendered xhtml
fragments are executed from last to first which is the opposite of what would
happen during a regular page load. I encountered this problem because one of
my components references another component in it's constructor and the
referenced component didn't exist yet during an ajax call because of reverse
execution. I found the problem code:
.sort((node1, node2) => node1.compareDocumentPosition(node2) - 3) // preceding
2, following == 4)
The compareDocumentPosition method compares the node2 position relative to
node1's position. If node2 is preceding node1 then the sort return value
should be 1 but in this case it will be -1 as 2 (return of
compareDocumentPosition) minus 3 is -1. The correct code should be:
.sort((node1, node2) => node2.compareDocumentPosition(node1) - 3) // preceding
2, following == 4)
Here is a jsfiddle - [JSFiddle - Code Playground|https://jsfiddle.net/jc03vLt5/]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)