【问题标题】:AngularJS and quirks mode: blank screen on IE8+AngularJS 和 quirks 模式:IE8+ 上的黑屏
【发布时间】:2014-02-12 22:09:09
【问题描述】:

我正在开发一个 Angular 项目,该项目将包含在我无法控制的 HTML 页面中。 实际上,我只能访问 <body> 元素中的内容。

有许多限制不是最容易处理的: 1-我无法更改文档类型: 2-我无法删除此元标记: 3- 应用必须加载一个 XML 文件

我设法克服了第 1 点和第 3 点,但第 2 点让我头疼! 这是我在 IE8+ 上测试时遇到的错误(在 IE7 和其他浏览器上运行良好):

[$sce:iequirks] http://errors.angularjs.org/1.2.12/$sce/iequirks 怪癖模式下的 IE8 不受支持 组件 $sce 中的错误 严格上下文转义不支持 quirks 模式下的 Internet Explorer 版本 http://docs.angularjs.org/api/ng.$sce 了解更多信息。

我在论坛上找到了很多解决方案,但到目前为止还没有一个解决方案...... 特别希望禁用 $sceProvider(下面的代码)将使应用程序在 IE8+ 上运行,但它没有:

angular.module('ie7support', []).config(function($sceProvider) {
// Completely disable SCE to support IE7.
$sceProvider.enabled(false);`
});

我什至尝试将<!doctype html> 添加到我的 HTML 文档的顶部,这是不允许的,但我只是为了测试而这样做的,它并没有解决问题。

非常感谢任何帮助或建议,因为我现在真的陷入困境......

谢谢

【问题讨论】:

    标签: angularjs internet-explorer-8 quirks-mode


    【解决方案1】:

    知道了!!

    我只需要在下面的代码中给出我的应用程序的名称,而不是愚蠢的“ie7support”:

    angular.module('ie7support', []).config(function($sceProvider) {
    // Completely disable SCE to support IE7.
    $sceProvider.enabled(false);
    });
    

    感谢对这篇文章的深入了解: http://docs.angularjs.org/api/ng.$sce

    希望对大家有所帮助!

    【讨论】:

    • 太棒了。奇怪的是必须在 2014 年支持 IE7,但作为一个要求,这个答案很好,谢谢。
    • 对于像我这样的 Angular 新手,能否请您提及我们在哪里添加此代码?谢谢。
    【解决方案2】:
    【解决方案3】:

    感谢您的回答 Adam,但根据这些消息,完全禁用 $sce 有助于 AngularJS 在 quirks 模式下支持 IE...

    https://github.com/angular/angular.js/issues/3633

    [$sce:iequirks] Strict Contextual Escaping does not support Internet Explorer version < 9 in quirks mode

    【讨论】:

      猜你喜欢
      • 2010-12-10
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 2013-12-23
      • 1970-01-01
      • 2020-06-15
      相关资源
      最近更新 更多