springmvc中使用redirect调用其他方法后window.opener失效

springmvc中使用redirect调用其他方法后window.opener失效。如果想保持opener不丢失该如何处理。
说明:
1.login画面是C#写的,其作用就是根据本地设定以不同的方式打开系统。使用【Response.Write("window.open("XXX/login?userId=Id", '_self');");】跳转去系统主画面。
2.系统是springmvc。【login】方法先接受请求进行处理后面用【return "redirect:/A"】调用其【A】方法。【A】又用redirect调用到了【B】方法。最后在【B】方法中才使用【return P/P01】打开主画面。这样打开的主画面在chrome浏览器中使用window.close是无法关闭的,会有【Scripts may close only the windows that were opened by it】的提示。

上述两步的操作是为了解决最新的edge和chrome浏览器中window.close无法关闭画面,因为目前往事的各种方法都用过了,都不能解决让这两个浏览器出现和IE一样的效果所以才想以window.open打开让后再关掉。但貌似在后台处理中,2次redirect让opener“丢了”,如果希望【window.open】在两次redirect中不失效应该如何处理。

Response.Write("window.open("XXX/login?userId=Id", '_self');");
一般很少在后台使用window.open,最好在前台js里处理