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

        Arran Mccullough created issue -
        Arran Mccullough made changes -
        Field Original Value New Value
        Salesforce Case Reference 5007000000RVGzUAAX
        Arran Mccullough made changes -
        Attachment IE9-Compat-Error.jpg [ 15476 ]
        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.
        Arran Mccullough made changes -
        Attachment Case11997Example.zip [ 15477 ]
        Attachment Case11997ExampleWAR.zip [ 15478 ]
        Ken Fyten made changes -
        Assignee Mircea Toma [ mircea.toma ]
        Fix Version/s 3.3 [ 10370 ]
        Assignee Priority P3 [ 10012 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #33992 Wed Mar 20 13:42:32 MDT 2013 mircea.toma ICE-9016 Poll document.readyState until the document is completely loaded, only then IE7 will be able to return non-zero offsetWidth/Height or clientwidth/Height values.
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/compat/core/src/main/javascript/extras/extras.js
        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.
        Mircea Toma made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

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

            Dates

            • Created:
              Updated:
              Resolved: