Office 2016/2019 Word插件中IE11跳转被Edge接管的解决方案咨询
解决方案
添加站点到IE兼容性视图
打开IE11,点击右上角「工具」按钮,选择「兼容性视图设置」,把登录页、认证跳转页以及返回URL对应的域名都添加进去。IE会强制用自身内核加载这些站点,不会触发Edge接管跳转。把服务器端重定向改成前端路由跳转
如果你的认证系统是可控的,把登录后的跳转逻辑从服务器端重定向改成前端JS控制的内部跳转。比如用location.replace()或者history.pushState()在插件的iframe里完成跳转,避免触发系统级的浏览器切换机制,确保流程始终在插件上下文里。配置Edge的IE模式本地站点列表
打开Edge浏览器,点击右上角三个点进入「设置和更多」,选择「设置」>「默认浏览器」,开启「允许在Internet Explorer模式下重新加载网站」。然后点击「Internet Explorer模式页面」,添加插件涉及的所有域名。这样Edge遇到这些域名会自动用IE内核处理,而且不会跳出插件的iframe窗口。用Office插件DialogAPI替代iframe登录
在Word插件里使用Office.js的DialogAPI来打开登录页面,而不是直接在插件iframe内加载。这个API会维持Office应用内的上下文,整个登录跳转流程都不会被Edge接管。示例代码:
Office.context.ui.displayDialogAsync('https://你的登录页面地址', { height: 50, width: 50 }, function(result) { const dialog = result.value; dialog.addEventHandler(Office.EventType.DialogMessageReceived, function(args) { // 在这里处理登录返回的令牌信息 dialog.close(); }); });
内容的提问来源于stack exchange,提问作者Gert Smit
相关产品推荐
相关产品推荐

