title: JSF 2 Ajax requests fail on IE 9
body: <p>I recently tried to test my JSF application on IE9 and discovered all Ajax requests to fail with a MalformedXML exception complaining about an undefined object when trying to access the removeChild attribute. I observed the problems both with MyFaces 2.0.5 and mojarra 2.1.1. Are there any known limitiations or prerequisites to support IE 9?</p>
  
  <p>To reproduce the problem I nailed it down to a simple test case consisting of one ajax request:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;!DOCTYPE html&gt;
  &lt;html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"&gt;
      &lt;f:view  contentType="text/html"&gt;
      &lt;h:head&gt;
          &lt;h:outputScript name="jsf.js" library="javax.faces" target="head"/&gt;    
      &lt;/h:head&gt;
      &lt;h:body&gt;
          &lt;h:form id="#{testBean.idForm}"&gt;
                  &lt;h1&gt;Test of IE9 Ajax&lt;/h1&gt;
                  &lt;h:panelGroup id="#{testBean.idDiv}" layout="block"&gt;
                      Text: &lt;h:outputText value="#{testBean.text}"/&gt;
                      &lt;br/&gt;
                      &lt;h:commandLink 
                          action="#{testBean.onAction}"
                          value="click me"&gt;
                          &lt;f:ajax render="#{testBean.idDiv}"/&gt;
                      &lt;/h:commandLink&gt;
                  &lt;/h:panelGroup&gt;
              &lt;/h:form&gt;
          &lt;/h:body&gt;
      &lt;/f:view&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>The bean is</p>
  
  <pre><code>package ietest;
  
  import javax.faces.bean.ManagedBean;
  import javax.faces.bean.SessionScoped;
  
  @ManagedBean
  @SessionScoped
  public class TestBean {
          private int clickCount;   
          private String idForm="testForm";
          private String idDiv="testDiv";
  
          public String getText(){
          String text = "you clicked " + clickCount +" times";
          System.out.println("Return text " + text);
          return text;
      }
  
      public String onAction(){
          System.out.println("onAction invoked");
          clickCount++;
          return "iebug";
      }
  
      public String getIdDiv() {
          return idDiv;
      }
  
      public String getIdForm() {
          return idForm;
      }
  }
  </code></pre>