【问题标题】:Angular on IE 11 intranet - programmatically disable Compatibility ViewIE 11 Intranet 上的 Angular - 以编程方式禁用兼容性视图
【发布时间】:2019-03-06 19:48:33
【问题描述】:

我正在通过IE11 在公司intranet 上运行Angular 6 应用程序。根据tscnfig.json,我的应用程序编译为ES5。我已经取消注释并安装了polyfills.js 中的所有 IE 兼容性行。我还在我的<head> 标记下方添加了建议的元标记<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

这些都没有以编程方式禁用 IE 的默认兼容性视图设置的预期行为。默认情况下,IE11 displays intranet sites in Compatibility View 会破坏 Angular。我能找到的唯一解决方案是让我们的每个用户进入他们的 IE 的 Compatibility View Settings 并取消选中此框:

这不太理想。还有什么我可以尝试的吗?在某些地方,我读到没有解决方法 - 而在其他地方,我读过 IE=Edge 元标记是解决方案 - 但我发现元标记修复是假新闻......我可以告诉你。

【问题讨论】:

  • 标签放在哪里也很重要……你把元标签放在头标签的正下方了吗?
  • 最好的办法是显示一条消息“不支持 IE,请使用任何普通浏览器”
  • 如果您在域环境中,您可以通过 GPO 模板集中配置该设置。
  • @pixelbits - 是的,我做到了。
  • 我们在公司环境中遇到了类似的问题,我们使用元标记解决了它。如果元标记设置正确,我认为没有明确的策略强制兼容模式。

标签: angular internet-explorer internet-explorer-11 intranet polyfills


【解决方案1】:

我回去仔细查看了我的 index.html 文件。我所做的唯一更改是我们有一个重复的元标记被注释掉了,并且我们的 Edge 元标记的属性和末尾的 /> 之间有一些额外的间距。

我删除了所有这些,现在无论设置如何,该应用程序都可以正常工作。我试图尝试删除一些空格而不是其他空格,或者不删除注释代码而不是删除它 - 从应用程序工作到当时不工作的变化似乎是随机的,并没有真正加起来(服务器延迟?) -所以我无法查明原因。但我确实知道,一旦我删除了所有多余的间距和注释掉的元数据,它就会起作用——尽管我认为这无关紧要。

确保我在每次测试之前清除了缓存等,并让我的队友在他们的机器上试用。我希望这可以解决问题,并且不会比这更随机。如果它再次中断,我将更新此线程,但现在它正在工作。感谢所有评论的人。

【讨论】:

    猜你喜欢
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2011-09-14
    • 2012-01-28
    • 1970-01-01
    • 2012-11-19
    相关资源
    最近更新 更多