Outlook和IE11中Turbolinks的未指定错误

问题描述

我们在使用IE作为其浏览器引擎的Outlook加载项中得到unspecified error。该错误来自我们的已编译的application.js javascript文件,该文件可追溯到Turbolinks。

当我们在Outlook加载项集成中加载应用程序时,会发生此错误。有一个加载页面可以确定用户是否需要登录,如果不需要,则将其重定向到我们的应用程序中。

解决方法

这是您数天或数周都不休的错误之一,然后证明是一条线的错误。

TLDR;

window.location.replace(url)很危险,因为它不会更新历史记录。这意味着用户将无法单击后退按钮。但是,这也意味着使用诸如Turbolinks之类的框架来操纵历史,您必须要小心。

相反,请使用: window.location.assign(url)

长话短说: 在我们的Outlook加载项的登录页面(用于确定是提示登录还是重定向到应用程序)中,我们使用的是window.location.replace。由于某种原因(我无法完全解释),在应用程序加载时,Turbolinks处理会尝试在窗口的历史记录对象上调用“ replaceState”。

由于某些原因,当您访问的第一页以replace重定向时,会出现一个空的历史记录,导致IE中出现unspecified error

解决方法是简单地做一个正确的历史记录,以使用location.assign(url)添加重定向。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...