The Internet Explorer progress bar continues to increase when an attached behavior is dynamically inserted in a page (320731)



The information in this article applies to:

  • Microsoft Internet Explorer (Programming) 6.0
  • Microsoft Internet Explorer (Programming) 6 (SP1)
  • Microsoft Internet Explorer (Programming) 5.5 SP2

This article was previously published under Q320731

SYMPTOMS

When you dynamically add an object that contains an attached behavior to a Web page, and the behavior must be downloaded, the progress bar in Microsoft Internet Explorer continues to increase. The progress bar continues to show progress even after the behavior is downloaded, and the page is rendered. However, the attached behavior works correctly without any unexpected problems.

CAUSE

This issue may occur when Every visit to the page is selected for the Check for newer versions of stored pages option in Internet Explorer.

To view the Check for newer versions of stored pages option, follow these steps:
  1. In Internet Explorer, click Tools, and then click Internet Options.
  2. On the General tab, click Settings under Temporary Internet files.
  3. In the Settings dialog box, view the Check for newer versions of stored pages option.

WORKAROUND

To work around this issue, take the following actions:
  • Avoid dynamically inserting any objects that contain attached behaviors.
  • Set the message text in the status bar of Internet Explorer after you add the object.

MORE INFORMATION

This issue occurs if you dynamically add an attached behavior by replacing the inner HTML of an element, such as the DIV element, by using the createElement method or the insertAdjacentHTML method, or by dynamically changing the className property of an element.

Steps to reproduce the behavior

  1. Copy the following code sample, and then save the code sample to a file that is named Test.htm.
    <HTML>
        <HEAD>
            <STYLE>
                .UseBehavior
                {
                    behavior: url(behavior.htc);
                }
            </STYLE>
    
            <SCRIPT>
                function DoClick()
                {
                    SetTarget.innerHTML = "<DIV CLASS='UseBehavior'>Hello World</DIV>";
    		//Uncomment the following line to work around the problem.
                    //window.status="Finished";	
                }
            </SCRIPT>
        </HEAD>
    
        <BODY>
            <DIV ID="SetTarget">Click to try the test</DIV><BR>
            <BUTTON onClick="DoClick()">Click to insert the attached behavior.</BUTTON>
        </BODY>
    </HTML>
    					
  2. Copy the following code sample, and then save the code sample to a file that is named Behavior.htc. Put the Behavior.htc file in the same directory where the Test.htm file is located.
    <PUBLIC:COMPONENT>
    <PUBLIC:ATTACH EVENT="ondocumentready" ONEVENT="Element_DocumentReady()" />
    
    <SCRIPT language="JScript">
    function Element_DocumentReady()
    {
    	// This is almost an empty behavior.
    }
    </SCRIPT>
    </PUBLIC:COMPONENT>
    					
  3. Open the Test.htm file, and then click Click to insert attached behavior.
After the text changes from "Click to try the test" to "Hello World", the behavior is added. The progress bar loads indefinitely.

REFERENCES

For additional information about developing Web-based solutions for Internet Explorer, visit the following Microsoft Developer Network (MSDN) Web sites:

MSDN library and Web workshop have mergedInternet Explorer updates Using DHTML behaviorUsing HTML components to implement DHTML behaviors in script

Modification Type:MajorLast Reviewed:4/21/2006
Keywords:kbtshoot kbprb kbpending KB320731 kbAudDeveloper