window.open() 的重定向在 IE 中不起作用

Redirection of window.open() does not work in IE

我有以下代码在 Chrome 中完美运行:通过单击 New,它会打开一个弹出窗口,然后单击 Change 会重定向到另一个页面。

JSBin

<!DOCTYPE html>
<html ng-app="plunker">
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
  </head>
  <body ng-controller="contentCtrl">
    <button ng-click="openNew()">New</button>
    <button ng-click="change()">Change</button>
    <script>
      var app = angular.module('plunker', []);
      app.controller('contentCtrl', ['$scope', function ($scope) {
        $scope.openNew = function () {
          $scope.popup = window.open("https://www.whosebug.com", "popup", "status=1, location=1");
        }

        $scope.change = function () {
          // $scope.popup = window.open("https://www.sina.com", "popup", "status=1, location=1");
          // $scope.popup.location.assign("https://www.sina.com")
          // $scope.popup.location.href("https://www.sina.com")
          // $scope.popup.location = "https://www.sina.com"
          $scope.popup.location.href = "https://www.sina.com"
        }
      }]);
    </script>
  </body>
</html>

但是,此代码在 IE 11 中不起作用。我发现 this thread 列出了 IE 中的几种重定向方式,我尝试了 location.assign(...)location.href(...) 等 none 他们工作了。

有谁知道如何在IE中实现window.open的重定向?

根据 documentationwindow.location.href= 似乎是在 IE 中设置(和获取)window 的 URL 的最佳方式。

如果这不起作用,替换应该可以解决问题:$scope.popup.location.replace("https://www.google.com/");