【问题标题】:exportMetadata error in IE8IE8 中的导出元数据错误
【发布时间】:2013-06-12 18:09:12
【问题描述】:

我在 proto.exportMetadata 函数中运行 IE8 的机器上遇到错误。 “错误:对方法或属性访问的意外调用”。遇到此错误时,我目前正在运行版本 1.2.1。如果需要,我将尝试提供更多信息。谢谢。

编辑 我将版本更新到 1.3.5,并且在运行 IE8 的机器上遇到了数据执行保护 (DEP) 设置的新问题。该机器安装了 Windows XP Pro Service Pack 3 并运行 IE8。不幸的是,在使用 IE8 浏览器模式运行 IE10 时不会发生这种情况,这是在运行 IE8 的机器上发生的。

【问题讨论】:

    标签: javascript internet-explorer-8 breeze dep


    【解决方案1】:

    我遇到了同样的问题,即使是 Breeze 1.3.6。在 IE8 中,exportMetadata 会导致“意外调用方法或属性访问”错误。

    对我来说,问题是间歇性的,但仍然可以重现。我可以重新加载我的应用程序,有时它工作正常,有时我收到 JavaScript 错误,有时 IE 选项卡完全崩溃并出现“Internet Explorer 已停止工作”对话框。

    错误实际上是从原生 JSON.stringify 函数内部抛出的。一种解决方法是删除本机 JSON 对象并改用 json2.js:

    <head>
        <!--[if lt IE 9]>
            <script>
                // Remove IE8's native JSON object. It doesn't work with Breeze.
                JSON = undefined;
            </script>
            <script src="json2.js"></script>
        <![endif]-->
    </head>
    

    您可以在其GitHub page 上的原始链接下载最新版本的 json2.js。

    另外,如果您要使用 json2.js,Breeze 在其对 JSON.stringify 的调用中存在一个错误(v1.3.6 中的轻率.debug.js 的第 5494 行)。 __config.stringifyPad 应该是 stringify 的第三个参数,而不是第二个。您需要插入第二个参数null,以便焊盘成为第三个参数。我已经提交了pull request,所以希望这在 Breeze 1.3.7 中得到修复。

    我不确定 Breeze 将什么传递给 JSON.stringify 以使本机实现失败。深入了解它会很好,但现在我正在使用这种解决方法。

    【讨论】:

      【解决方案2】:

      编辑:Breeze 1.3.6 中修复了一些 IE8 特定问题。您可能也想尝试一下。


      如果您使用的是 IE8,则需要使用这样的 ES5 shim:ES5 Shim。这里有关于这个主题的更多文档:Breeze prerequisites

      【讨论】:

      • 我确实将这些包含在项目中。
      • 我使用 Breeze 站点的 TempHire Sample 设置了一个示例。添加 es5 shim 和 sham 后,在使用运行 IE8 的 Windows XP Pro Service Pack 3 的机器时,我在 DEP 设置上失败了。我启用了 DEP 设置并重新启动以绕过 DEP 设置中的 Internet Explorer。尝试打开“ResourceMGT”视图时会发生此错误。我可以正常登录并查看主屏幕。
      • 我正在慢慢解决这个问题。我仍在使用 Temp Hire 示例,如果您取出设置“IE=edge”的元标记,那么它会在 IE8 机器上正确加载。有几个 javascript 错误,我将针对 .finally 提出请求以在 IE8 上工作。我现在要说的最后一点是在 Q "[Q] 未处理的拒绝原因(应该为空)中遇到错误:错误"
      • 感谢您提供更多信息。我仍然无法重现该问题,尽管我使用的解决方案比 TempHire 更简单,并且专门关注 proto.exportMetadata。我会尝试使用 TempHire,看看是否可以复制。
      • 所以我想出了如何绕过这个 link 的 DEP 设置。然而,IE8 在登录时仍然崩溃。我可能会在这方面花费更多时间,并尝试通过它来解决问题。当您尝试使用运行 Windows XP 的机器时?
      猜你喜欢
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      相关资源
      最近更新 更多