Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
170
Compatibility with AJAX controls (Accordion, Tabs and ModalPopupExtenders) on IE9
posted

I am using Version 10.3.20103.2134.

I have a WebDataMenu on a user control that is used by every page in our app to provide a uniform menu.

 

On pages that include any of these three AJAX controls (Accordion, Tabs or ModalPopupExtender)

as soon as the page is posted back the following error occurs:

SCRIPT5007: Unable to get value of the property 'nodeName': object is null or undefined

 

In the code below, the debugger shows the activeElem item within the if statement as null. This happens ONLY in IE 9, Firefox shows this as an "input" item and works fine.

_onDocumentMouseOverHandler: function(e)
    {
        this.__x = e.clientX;
        this.__y = e.clientY;
       
        var activeElem = document.activeElement;
        if(!this.__controlActive && activeElem.nodeName != "BODY" && activeElem.nodeName != "HTML")
        {
            this.__lastFocusedElement = activeElem;

            if (this.__lastFocusedElement && this.__lastFocusedElement.nodeName == "INPUT")
            {
                this.__lastFocusedInputCaretPosition = this.__lastFocusedElement.value.length;
            }
        }
    }

 

It appears other AJAX controls (such as CascadingDropDowns) don't cause a fuss.

 

Does anyone have any ideas?

Parents
  • 170
    Suggested Answer
    posted

    I have found more info:

    It turns out NOT to be the AJAX controls, it's UpdatePanel and IE9.

     

    I have attached a sample application that illustrates the problem. The zip file contains the complete project except AJAX references, those had to be removed to save space so I could upload the sample.

     

    There is a user control (Header.ascx) that invokes a WebDataMenu.

    I have created two basic pages; each contain the Header (and menu), an UpdatePanel and a button that performs a simple postback.

    TestPagePlain does NOT use the <meta http-equiv="X-UA-Compatible" content="IE=8" /> tag.

    While TestPageWithCompatibilty obviously does.

     

    To reproduce, add the AJAX references, build the app, run it and Navigate to

    Test Pages --> Test page with UpdatePanel - IE9 (broken)

    and

    Test Pages --> Test page with UpdateCompatibility - IE8 Compatibility Mode (works)

    When you click the button on the page, the plain page fails while the other does not.

     

    This is a horrible workaround...I am not looking forward to putting this into every page of my application (BTW, I tried to add the tag dynamically but for some reason did not behave the same way).

     

    Hopefully there is some other patch or fix for this...or one coming soon?

     

     

     

     

     

     

     

    TestMenuWithAJAX.zip
Reply Children