【问题标题】:internet explorer cannot open the internet siteInternet Explorer 无法打开 Internet 站点
【发布时间】:2010-10-04 01:53:52
【问题描述】:

我有一个奇怪的错误,但这似乎只发生在 IE6 中,而且是随机发生的。 我正在我公司的网站上实施全能分析。我制作了一个文字服务器控件并从更新面板中调用它。控件所做的只是构建 java 脚本并使用 ScriptManager.RegisterStartupScript(Control, Type, String, String, Boolean) 将 java 脚本添加到页面。这一切都很好,除了随机错误(见附图)。

根据我的阅读,这似乎是 IE6 中的一个错误,如果 java 脚本在 body 标记内的子元素中创建,它会导致 java 脚本错误,而我的脚本最终位于 form 标记内。我只是想知道是否有任何其他方法可以用来注册不会导致此错误的控件。

Image http://img132.imageshack.us/my.php?image=errornf7.jpg

// 我似乎无法正确显示图像,所以我将链接到它。

Error Screenshot

【问题讨论】:

    标签: c# asp.net javascript updatepanel servercontrols


    【解决方案1】:

    我也遇到过这个问题。我发现它也会影响 IE6 和某些版本的 IE7。就我而言,问题实际上是由 ScriptManager.RegisterStartupScript 方法引起的。一旦我删除它就可以正常工作

    【讨论】:

      【解决方案2】:

      这看起来像是脚本在加载之前修改 DOM 的情况。如果我是你,我会考虑在 DOM 准备好时添加脚本。很多 JS 库都有这样做的方法。

      有关此类错误的更多信息:http://blog.mjjames.co.uk/2007/11/knowing-whats-on-your-page.html

      【讨论】:

        【解决方案3】:

        很抱歉,如果这最终完全偏离了基地,但我记得不久前遇到过这样的事情。我通过在我的脚本标签中添加“延迟”来修复它,即:

        <script defer="true"> ... </script>
        

        这可以防止脚本在页面的其余部分完成加载之前运行,从而避免 IE DOM 错误听起来与您得到的非常相似。不过我没用过ASP,不知道怎么通过ScriptManager添加defer属性。

        【讨论】:

        • 感谢您的回复,我实际上在发布之前阅读了该解决方案,并尝试了它。但是,当我添加它时,该脚本从未呈现到页面上。我猜它不适用于 ScriptManager/updatepanel。
        • 它有效(TM)!有同样的问题(一个 jQUery 插件试图在 DOM 准备好之前运行)。
        猜你喜欢
        • 2013-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-17
        • 2017-08-21
        • 2020-02-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多