Anyone have ideas for solving the “n items remaining” problem on Internet Explorer?

前端 未结 7 1434
灰色年华
灰色年华 2021-01-30 17:22

In my ASP.Net app, which is javascript and jQuery heavy, but also uses master pages and .Net Ajax pieces, I am consistently seeing on the status bar of IE 6 (and occasionally IE

相关标签:
7条回答
  • 2021-01-30 17:46

    I found a solution for most of my projects.

    I'm using jQuery Fancybox plugin almost in every project. If you're using Fancybox and having "x items remaining" issue then here's the solution:

    In fancybox's css file close to the end of the file there's a bunch of IE filters for semitransparent png's to load properly. Something like this:

    .fancybox-ie6 #fancybox-close { background: transparent; 
    filter: progid:DXImageTransform.Microsoft.AlphaImageLoader
    (src='fancybox/fancy_close.png', sizingMethod='scale'); }
    

    As you can notice the path in the src attribute is wrong.

    Just fix the paths for all filters (there's about 20 of them) and the problem will be solved!

    I recommend to put a path relative to the root, like this:

    .fancybox-ie6 #fancybox-close { background: transparent; 
    filter: progid:DXImageTransform.Microsoft.AlphaImageLoader
    (src='/css/fancybox/fancy_close.png', sizingMethod='scale'); }
    
    0 讨论(0)
  • 2021-01-30 17:53

    It is to do with the "fix" for transparent PNGs in IE.

    I was having this same problem with a site im working on and soon found there is no valid solution that fixes both this issue and the Transparent PNG images.

    0 讨论(0)
  • 2021-01-30 17:57

    I have fixed this by doing the following. It's a hack but it works.

    Simply load your image using an invisible IMG tag just after the body tag. Eg,

    <body>
      <img src="problem_image_here.jpg" style="display:none">
    
      ...
    </body>
    

    IE seems to load that same image via css with no issues after this.

    0 讨论(0)
  • 2021-01-30 18:01

    IF you use behaviors ANYWHERE in your code (or a library you use uses them) e.g.

    <style>
      body * {
        behavior:url(anyfile.htc);
      }
    </style>
    

    Then there is NO solution that I'm aware of and the bug report filed in IE Feedback on Connect for IE8 (and IE7) was rejected for both releases with the following blanket canned statement:

    This is a known bug in IE and also happens in previous IE versions. The reason that you see hundreds of requests in the status bar is because IE attemps to read the htc file from disk over and over again for each element on the page. Unfortunately, at this time we do not plan on fixing this. We will consider this in the future version of IE.

    Best regards, The IE Team

    Since this is the same reply received for IE7 development I wouldn't hold my breath on EVER having this fixed.

    Update:

    One additional thought based on your update notes. If the page isn't quite responsive, as if it is still loading something, check the rendered DOM content for any calls to document.write() {you may not have added them, but a lib might have}.

    If they exist, try adding a document.close(); statement after they are complete, this will tell the browser you are "done" rendering.

    PS here is a link you can save as a bookmark (right-click "Add to favorites...") that will show you the generated DOM as IE sees it (an ugly quoteLess=CaMelCaSeMeSS) do a search on the result to find any quirky code that might be causing issues.

    IE Generated Source: (add this as the location for any bookmark, the editor won't let me link it up)

    javascript:'<xmp>'+window.document.body.parentNode.outerHTML+'</xmp>';
    
    0 讨论(0)
  • 2021-01-30 18:02

    This guy has a great writeup on IE6 caching problems, but the blog appears to be down.

    He boiled the problem into two parts:

    1. IE6 background-image flicker
    2. An IE bug/feature: Internet Explorer Cache Is Not Used When You Run innerHTML Code to Insert the Same Image Multiple Times. Microsoft suggests two very bad workarounds (and in my case, they didn't even work), but you can also workaround this by making sure you don't insert <img> tags via innerHTML.

    The natural solution to problem #2 is to use background-image instead of <img> tags; insidiously, this will force you right into problem #1; as a result, you may defeat problem #2, incorrectly believing you are making no progress.

    In my case, I solved both problems at once, when I replaced my innerHTML <img> tags with <div> tags that had background-image and used document.execCommand("BackgroundImageCache", false, true) to fix the flicker.

    0 讨论(0)
  • 2021-01-30 18:05

    I have had a similar issue before, and it was due to a long running JS piece that was in the middle of the page, the browser was waiting for it to finish executing before it would finish downloading the additional files for the site.

    I'm not sure if this is an issue for you or not, but it had manifested itself in a similar manner.

    0 讨论(0)
提交回复
热议问题