【问题标题】:IE7 display oddity (example attached)IE7 显示异常(附示例)
【发布时间】:2009-04-09 16:45:16
【问题描述】:

我正在开发基于 Javascript 的 Flash 小程序替代品。该网站仅在 IE 中存在渲染问题,它表现出的行为让我束手无策。

http://janetalasher.com/new/content/portfolio/artcloth/(这是页面)

IE 做了什么这么奇怪(仅在这种情况下)?如果您在 Firefox 中查看,您会在右侧看到一个包含缩略图的图像表。 IE6 和 IE7 不显示此内容...除非您在打印预览中。这不是 CSS 故障 - 我已禁用所有样式表,但错误仍然存​​在。我会提供更多相关的源代码,但我什至不知道问题出在哪里。我怀疑的 .js 文件(如果有帮助的话)是:

/common/gallery/display.js
/common/gallery/loader.js

好的 - 更新:它肯定只在打印预览模式下正确渲染。有人可以向我解释一下这种情况发生在哪个世界? div 以正常模式存在,但表格不会呈现。使用 IE 开发人员工具栏确认它并且所有单元格都存在。

【问题讨论】:

    标签: javascript internet-explorer


    【解决方案1】:

    尝试在此处添加分号:

    function loadGallery(xml)
    {
        thumbpath = $(xml).find("thumbpath").attr('dir') // add here
        imagepath = $(xml).find("imagepath").attr('dir') // here
        detailpath = $(xml).find("detailpath").attr('dir') // and here
        cSheet = contactSheet(xml);
        $('.contactSheet')[0].appendChild(cSheet);    
                display($(cSheet).find('img')[0]);
    }
    

    另外,在这一行:

    jQuery.get('/new/content/portfolio/artcloth/gallery.xml' , 'xml' , function(data) { loadGallery(data); } ) // missing one here too
    

    实际上,您的 Javascript 文件最后也缺少分号。确保浏览每个文件并在每一行的末尾添加一个。

    Javascript 实际上并不需要它们,但为了保持理智并准确了解代码的运行情况,最好将它们放入其中。例如:

    return
    1
    

    可以变成:

    return;
    1;
    

    什么都不返回,不完全是想要的效果。

    【讨论】:

    • 做出改变 - 没有改变。我可能应该将该部分移到一个单独的 Javascript 文件中,但我会等到这个问题得到解决。这样一来,除了响应人们的建议,什么都不会改变
    【解决方案2】:

    根据 Microsoft Script Editor,jQuery 内部有一个错误是由这行引起的:

    $('#lower').css('padding-left' , paddingLeft - (lowerRightProtrusion < 0 ? 0 : lowerRightProtrusion) + "px");
    

    由于 lowerRightProtrusion 为 NaN,并且 NaN

    有关 MS 脚本编辑器的信息,请参阅我之前的答案: Using the IE8 'Developer Tools' to debug earlier IE versions

    【讨论】:

      【解决方案3】:

      似乎 IE 没有采用这些样式。如果我在 chrome 中打开页面,“float:left”样式会出现在描述 div 上。但是,在 IE 中并非如此。

      您目前将包含在文档正文中的 div 中。如果可能,请尝试将它们移入头部。我说的是 div id="pageHead" 的直接后代的链接和脚本标签。

      (我正在使用 IE6 和开发者工具栏来获取这些信息)

      【讨论】:

        【解决方案4】:

        /common/css/generic.css:

        div#information 
        {
        margin-left:188px;
        m\argin-left:94px; <------ not sure if that would cause this, but thought i would point it out 
        }
        

        【讨论】:

        • 这是对双边距错误的修复(有人告诉过我)。
        猜你喜欢
        • 1970-01-01
        • 2013-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-03
        • 2016-07-17
        相关资源
        最近更新 更多