ICEfaces
  1. ICEfaces
  2. ICE-7153

Message: Object required from icefaces-compat.js

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-2.0.0.GA, 2.0.2
    • Fix Version/s: 2.1-Beta, EE-2.0.0.GA_P01
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      IE7, IE8, IE9
    • Assignee Priority:
      P2

      Description

      The sample application has it´s own message handling implementation which provides a correlation between the user interface and data transfer objects. It uses composite components to detect validation errors and then display them on the offending component using a panelToolTip. This works when outside of an ice:dataTable but not within and a javascript error is thrown. For example:

      <cc:validationGroup>
      <ice:dataTable>
          <ice:column>
      <f:facet name="header">
      <ice:outputText id="column3" value="#{msgs_validation.city}" />
      </f:facet>
      <cc:tooltip for="city">
      <ice:inputText id="city" value="#{partner.city}" valueChangeListener="#{validationCtrl.removeCurrentMessage}" onkeyup="iceSubmitPartial(form,this,event);"/>
      </cc:tooltip>
         </ice:column>
      </ice:dataTable>
      </cc:validationGroup>

      This works in FF and but not in versions of IE. In IE7/8, the offending field is highlighted in yellow but the tool tip is not displayed and following javascript error is thrown:

      Message: Object required
      Line: 1
      Char: 77237
      Code: 0
      URI: http://localhost:8280/riweb-presentation/javax.faces.resource/icefaces-compat.js.xhtml;jsessionid=F8670CC02B5CE698C8B8C0BB6AD4E0F5

      In IE9, the validation error does not even occur in order to reproduce the issue and the following javascript error is thrown:

      SCRIPT5007: Unable to get value of the property 'parentNode': object is null or undefined 
icefaces-compat.js.xhtml, line 1 character 77237

      Both errors correspond to the following code in icefaces-compat.js:

      if(element.parentNode){do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);}return new Element.Offset(valueL,valueT);}
      1. IE7-8_JS_ERROR.rtf
        6 kB
        Tyler Johnson
      2. IE9_JS_ERROR.rtf
        6 kB
        Tyler Johnson

        Activity

        Hide
        Mircea Toma added a comment -

        The JS error is triggered when the 'onmouseout' callback is executed after the DOM update received erased the tooltip element from the document.

        The fix changed the callback to test for the existence of the tooltip before hiding the tooltip element on mouse out.

        Show
        Mircea Toma added a comment - The JS error is triggered when the 'onmouseout' callback is executed after the DOM update received erased the tooltip element from the document. The fix changed the callback to test for the existence of the tooltip before hiding the tooltip element on mouse out.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Tyler Johnson
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: