3.2.0

Popup issue for Combo Box in IE6

We have been experiencing a problem lately when clicking combo boxes. On some machines (all the machines are clones with the same versions of IE) the popup from the combo box does not show up, and in its place is a white frame the width of the screen and the length of the popup. Has anyone ever experienced this?
Justin
June 26,
I have a screenshot here. Sorry that it is heavily edited...it is all that I could get approved.

http://paintedover.com/uploads/show.php?loc=0716&f=dropdown_error.jpg

Note the big white box below the combo box in row 2. That is the error in action.

Justin
June 26,
Sorry, that link appears to be broken.

http://img122.imageshack.us/my.php?image=dropdownerrortu6.jpg
Justin
June 26,
Justin,

most likely this is a timing issue (AW bug), related to how many stylesheets you have on this page and whether the caching is enabled in the browser and/or server configuration. If you are using AW 2.0.1 then first try 2.0.2, it should work better. If you have this issue with 2.0.2 then you have to increase the size calculation delay (line 75 in /source/lib/templates/popup.js).
Alex (ActiveWidgets)
June 26,
Thanks! We shall try this and report back with our findings.

Justin
June 26,
It seems to significantly decrease the frequency of this error. As we increase the calc delay, we certainly notice an improvement. When we do experience the issue, it is when a user clicks the text of the combo box, and then on the arrow.

Any further help would be appreciated, but this fix will do for now.

Thanks!
Justin
June 26,
Ahh the error has resurfaced using the new version and a timeout time of 1500. Any thoughts on what to do next, Alex?

Again it only happens on some machines (all of the machines are clones though), but on those machines, it happens consistantly.
Justin
July 2,
Unfortunately I was never able to reproduce this error reliably. Could you check if those machine have caching disabled in IE (Tools->Options->Browsing History->Temporary Internet Files->Check for newer versions of the stored pages->Every time I visit webpage, instead of Automatically). Or maybe there is any other difference in the IE configuration?

Do you see the same error if you open any standard AW example, like /examples/themes/controls-xp-quirks.htm?

Which DOCTYPE are you using?

Do you have many external stylesheets and/or scripts on this page? Does it still happen if you remove them?
Alex (ActiveWidgets)
July 2,
We have come up with a fix for this:
obj.showPopup = function(){

        var popup = window.createPopup();
        this.$popup = popup;
        AW.$popup = this;

        var doc = popup.document;
        doc.open();

        if (AW.strict){
            doc.write("<!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.01\/\/EN\" \"http:\/\/www.w3.org/TR/html4/strict.dtd\">");
        }

        doc.write("<html class=\"aw-popup-window aw-system-control " + AW._htmlClasses + "\"><head>");

        AW.register(doc.parentWindow);

        for (var i=0; i<document.styleSheets.length; i++){
            doc.write(document.styleSheets[i].owningElement.outerHTML);
        }

        doc.write("</head><body onselectstart=\"return false\" oncontextmenu=\"return false\">");
        doc.write(this.getPopupTemplate().toString());
        doc.write("</body></html>");
        doc.close();

        var ref = this.element();

        var left = 0;
        var top = ref.offsetHeight;
        var width = ref.offsetWidth;
        var height = 1;

        popup.show(left, top, width, height, ref);

        //width = Math.max(doc.body.scrollWidth, width);
        //height = Math.max(doc.body.scrollHeight+1, 20);
        //popup.show(left, top, width, height, ref);

        this.setTimeout(function(){
            try {
                width = Math.max(doc.body.scrollWidth, width);
                height = Math.max(doc.body.scrollHeight+1, 20);
                if (popup.isOpen){
                    popup.show(left, top, width, height, ref);
                }
                popup = null;
                ref = null;
            }
            catch(err){
            }
        }, 250); // timeout for resizing popup
    };
Justin
July 3,
By commenting out those lines and dropping the timeout to 250, we were able to get this issue to dissappear! Our rationale was that the error was occurring at the same time no matter how large the timeout was. Sure enough, the screen was getting painted before the timeout as well.
Justin
July 3,

This topic is archived.

See also:


Back to support forum