首页 > 解决方案 > window.history(angularJS 代码)不存储在 IE 11 中访问的所有历史页面

问题描述

以下是按顺序访问的网址

  1. www.facebook.com

  2. 第一(sso)

  3. prodURLAdmin

  4. 第一(sso)

  5. prodSurveyURL

所以现在我在第 5 位,即 URLprodSurveyURL,我将从这里返回,使用后退按钮调用 angular 1.x 中的以下函数

 $rootScope.goBack = function () {
            if(document.referrer.indexOf("sso/SSO")>-1) {
                var prevPage = -1
                window.history.go(prevPage);
            } else {
                $window.open(document.referrer, '_self');
            }
        }; 

它进入if循环

在铬:

windows.history.length 是 5 。

window.history.go(-1);

因此在这里它正确重定向到 prodURLAdmin 跳过 fimst(即 sso)

但是在 IE 11 中:

进入if循环后

windows.history.length 是“2”而不是 5!

并且 window.history.go(-1) 正在重定向到第一页,即 www.facebook.com

我假设 IE 11 中的 window.history 仅存储两个 URL,它们是:

  1. www.facebook.com
  2. prodSurveyURL

因此 window.history.go(-1) 正在返回 www.facebook.com

为什么 window.history 无法在 IE 11 中存储(按顺序)访问的所有 5 个 URL?

这是一个现有的问题吗?

有解决方法或解决方案吗?

请帮忙

标签: javaangularjsuser-interfacefrontendinternet-explorer-11

解决方案


推荐阅读