ICEfaces
  1. ICEfaces
  2. ICE-9016

ice:panelDivider - JavaScript errors thrown when displayed in ace:tabSet/Pane in IE7

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-3.2.0.GA
    • Fix Version/s: 3.3
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      IE7, IE9 Compat
    • Assignee Priority:
      P3
    • Salesforce Case Reference:

      Description

      An ice:panelDivider is used in an ace:tabPane and set to have a vertical orientation. When navigating to the tab that contains the divider in IE7 or IE9 Compat mode, a JavaScript error is thrown and the tabs contents do not render. This only seems to be an issue if the orientation is set to vertical, when set to horizontal the errors aren't seen.
      1. Case11997Example.zip
        18 kB
        Arran Mccullough
      2. Case11997ExampleWAR.zip
        9.34 MB
        Arran Mccullough
      1. IE9-Compat-Error.jpg
        425 kB

        Activity

        Hide
        Arran Mccullough added a comment -

        Attached test case that shows issue.

        Steps:

        • Load welcomeICEfaces.jsf in IE7 or IE8/9 Compat mode.
        • Try to navigate to Tab Two, errors will be thrown in the console.
        Show
        Arran Mccullough added a comment - Attached test case that shows issue. Steps: Load welcomeICEfaces.jsf in IE7 or IE8/9 Compat mode. Try to navigate to Tab Two, errors will be thrown in the console.
        Hide
        Mircea Toma added a comment -

        The error occurs only in IE7 (Quirks mode). The clientWidth or offsetWidth values queried off the panel divs are 0.

        Show
        Mircea Toma added a comment - The error occurs only in IE7 (Quirks mode). The clientWidth or offsetWidth values queried off the panel divs are 0.
        Hide
        Mircea Toma added a comment -

        The clientWidth and offsetWidth values are zero because the Ice.PanelDivider.adjustSecondPaneSize function is invoked (via Ice.PanelDivider.onLoad) by inline script while the document is modified. Most probably IE7 needs to have the document loaded before calculating the element layout.

        The fix applied modifies Ice.PanelDivider.onLoad to poll document.readyState until the document is completely loaded then run the panel divider calculations. I tried to use document.observe('dom:loaded', ... ) function from Prototype instead, but the results were not successful, hence the hand-crafted solution.

        Show
        Mircea Toma added a comment - The clientWidth and offsetWidth values are zero because the Ice.PanelDivider.adjustSecondPaneSize function is invoked (via Ice.PanelDivider.onLoad) by inline script while the document is modified. Most probably IE7 needs to have the document loaded before calculating the element layout. The fix applied modifies Ice.PanelDivider.onLoad to poll document.readyState until the document is completely loaded then run the panel divider calculations. I tried to use document.observe('dom:loaded', ... ) function from Prototype instead, but the results were not successful, hence the hand-crafted solution.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Arran Mccullough
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: